将变量从javascript页面传递到php页面时出现问题
Trouble passing a variable from javascript page to php page
我想通过JavaScript页面将字符串从一个php页面发送到另一个页面。按下一个按钮,绳子就穿过去了。的名称按钮每次显示时都会更改,并且按钮的名称为发送通过的。问题是,它没有显示在下一个php页面,但alert()函数根据需要输出字符串。什么代码有问题吗?
以下是第一页中的php代码
echo "<form method = 'post' action = 'passer.php'>
<input type = 'submit' value = 'play' name = '$ball'></input>
</form>";
这是javascript代码
$(':input').click(function(){
var cat = $(this).attr("name");
alert(cat);
console.log(cat);
$.post("studSport.php",{input: cat}, function(data){
});
});
以及下一页中的php代码{$receiver=";
if(isset($_POST['input'])){
$receiver = $_POST['input'];
echo $receiver;
} else{
echo " it is empty";
}
}
即使alert()显示了正确的变量,输出也总是"it is empty"。代码出了什么问题,为什么不显示$receiver?
您的Ajax请求永远不会运行。当您单击输入时,您会触发它……但输入是一个提交按钮,因此Ajax请求被取消,表单被提交,并加载一个新页面。
由于您的表单没有名为input
的输入,因此您总是无法通过测试if(isset($_POST['input']))
。(被取消的Ajax请求确实输入了input
,但您从未发出过该请求)。
要停止表单提交,您需要捕获事件对象并防止事件通常会触发的默认行为。
$(':input').click(function(evt){
evt.preventDefault();
但是,请注意,您的成功处理程序函数:
function(data){
}
…什么都不做,所以如果不使用浏览器的开发工具检查HTTP响应,就无法看到结果。
您的目标可能不是使用Ajax,而是加载一个新页面——只是在表单中添加额外的数据
为此,您需要修改表单中的控件。
$(':input').click(function(){
var cat = $(this).attr("name");
alert(cat);
$(this).append(
$("<input type='hidden' name='input'/>").val(cat)
});
});
但是,如果您只是想知道按下了哪个提交按钮,那么根本不需要JavaScript。只需使用一个带有所需名称和值的提交按钮。
<form method='post' action='passer.php'>
<button name="input" value="<? echo htmlspecialchars($ball); ?>'>
play
</button>
</form>
相关文章:
- 将PHP变量传递给jQuery时遇到问题
- 无法运行php代码,有角度路由问题
- PHP和JS脚本的奇怪问题,在我刷新页面之前第一次失败
- 将php值传递给点击(getFunction(this.value))问题
- 将一个php变量从js传递到php,并返回内容问题
- PHP 回显问题
- 带有jquery验证问题的php表单
- 从JS到PHP;另一个CORS问题(似乎是)
- Ajax发布到PHP脚本,每5秒查询一次MySQL数据库的性能/问题
- 使用 php 和 javascript Ajax 发送复选框值时遇到问题
- 使用jqueryAjax和php脚本从mysql检索数据时遇到的问题
- 在wordpress中向自定义php模板添加滑块时出现问题
- 使用php解析xml并将其转换为json以与$.ajax一起使用时遇到问题
- 创建php/javascript倒计时计时器时出现问题
- jquery联系表单PHP问题
- 将html表导出到可下载的excel中,并解决PHP问题
- 将变量php问题化为代码jquery
- JSON 解码 PHP 问题
- 基本的 PHP 问题.将 JavaScript 添加到.php页面
- AJAX/Javascript上传PHP问题