我正在尝试将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 te" eventID"它正确显示数字。
我的PHP代码在index.php中。这也是.eventRow类的位置。
<?php
$phpEventId = $_POST['phpEventId'];
echo "<script>console.log('Nummer: ".$phpEventId."')</script>";
print $phpEventId;
?>
然而没有任何反应。 console.log只显示:&#34; Number:&#34;代码有问题吗?谢谢你的帮助!
编辑:在点击按钮之前,是否已经加载了index.php的问题?因为这个php代码在index.php中,因此$ phpEventId尚未设置。答案 0 :(得分:2)
在您的Ajax中,type: "POST"
适用于1.9.0之前的jQuery。如果您使用的是最新的jQuery,请使用method: "POST"
。
如果您使用的是最新的jQuery但未指定method: "POST"
,则默认为method: "GET"
,您的PHP需要使用$_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);
}
});
答案 1 :(得分:0)
这只是代码的一部分,问题出在其他地方。在这种情况下,您的代码可以正常工作:
<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响应......
答案 2 :(得分:0)
即使在这里也可以看到错误
根据WebZed回合统计报告,此错误在84%的Web开发人员中可见。
在更新框架和代码时,无法通过JQuery将数据发布到PHP。
今天可能提供的解决方案
<form></form>
试试method="post"
。 出于安全原因,请尝试使用enctype =“”命令。 尝试使用React Native https://nativebase.io/