[英]AJAX post variable to PHP not working
我正在尝试将jQuery变量转换为PHP变量。 我查了一下,但是找不到解决方案。 我有以下jQuery:
$('.eventRow').click(function(){
var eventID = $(this).attr('id');
$.ajax(
{
url: "index.php",
type: "POST",
data: {'phpEventId': eventID },
success: function (result) {
console.log('success');
}
});
当我在console.log中输入“ eventID”时,它会正确显示该数字。
我的PHP代码在index.php中。 这也是.eventRow类所在的位置。
<?php
$phpEventId = $_POST['phpEventId'];
echo "<script>console.log('Nummer: ".$phpEventId."')</script>";
print $phpEventId;
?>
但是什么也没发生。 console.log仅显示:“ Number:”代码是否有问题? 谢谢你的帮助!
编辑:难道是我单击按钮之前已经加载了index.php的问题吗? 由于此php代码位于index.php中,因此尚未设置$ phpEventId。
在您的Ajax中, type: "POST"
适用于1.9.0之前的jQuery。 如果您使用的是最新的jQuery,请使用method: "POST"
。
如果您使用的是最新的jQuery,但未指定method: "POST"
,则默认为method: "GET"
并且您的PHP需要使用$_GET['phpEventId'];
来捕获它$_GET['phpEventId'];
。
阅读您的更新后,让我们尝试一件事。 更改您的PHP以对Ajax返回有意义的内容:
<?php
$phpEventId = $_POST['phpEventId'];
echo $phpEventId;
?>
然后尝试在您的Ajax中捕获PHP响应:
$.ajax({
url: "index.php",
method: "POST",
data: {'phpEventId': eventID },
success: function (result) {
alert("result: " + result);
}
});
这只是代码的一部分,问题出在其他地方。 在这种情况下,您的代码可以正常工作:
<div class="eventrow" id="1">This</div>
<div class="eventrow" id="2">That</div>
<script>
$('.eventRow').click(function(){
var eventID = $(this).attr('id');
$.ajax(
{
url: "index-1.php",
type: "POST",
data: {'phpEventId': eventID },
success: function (result) {
console.log('success: '+eventID);
}
});
});
</script>
使用匹配的index-1.php:
<?php
$phpEventId = $_POST['phpEventId'];
echo "<script>console.log('Nummer: ".$phpEventId."')</script>";
print $phpEventId;
?>
不知道为什么在这里为什么将javascript代码(console.log)打印到ajax响应中...
即使在这里也可以看到错误
根据WebZed的回合统计报告,此错误在84%的Web开发人员中可见。
在更新框架和代码时,无法通过JQuery将数据发布到PHP。
可能的解决方案今天可用
<form></form>
try method="post"
。 出于安全原因,请尝试使用enctype =“”命令。 尝试使用React Native https://nativebase.io/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.