我正在做的是我想要检测我点击哪个回复按钮并将其索引发送到php。
jQuery的:
$(".reply").each(function (index5) {
$(".reply_button").each(function (index_b) {
if(index_b==index5){
$(this).on("click",function (e) {
e.preventDefault();
var $this = $(this)
$.ajax({
type:"POST",
url:"/yyqGS/public/form/reply.php",
data:{index:index_b},
dataType: "json",
success:function (d) {
console.log(d);
}
});
})
}
});
});
PHP:
<?php
$n = $_POST['index'];
echo $n+1;
我想将变量index_b传递给php文件,以便$ _POST ['index']可以得到该值。
但是php页面上的结果是1,这意味着它没有从ajax获取index_b的值。
另一方面,在控制台上显示的是,但是,正确的数字!就像,如果我点击第一个回复按钮,它会显示1,如果我点击第二个,它会显示2,依此类推......
result on php: always 1.
result on console: correct number.
我无法弄清楚它是怎么发生的!
更新: 所以我将console.log()更改为submit(),我希望ajax首先将索引发送到php,然后另一个表单将发送像'text'我输入到php。但是,php页面上的内容仍然是1。
$ this.parent()是一个表单。
所以我真正想做的是我想将变量index_b发送到php,同时将这些输入数据发送到php。所以我可以同时使用它们。
$(".reply_button").each(function (index_b) {
if(index_b==index5){
$(this).on("click",function (e) {
e.preventDefault();
var $this = $(this)
$.ajax({
type:"POST",
url:"/yyqGS/public/form/reply.php",
data:{index:index_b},
success:function (d) {
$this.parent().submit();
}
});
})
}
});
答案 0 :(得分:1)
您的PHP页面不以任何方式存储$_POST
值 - 它通过ajax请求(或发送$_POST['index']
数据的其他请求)接收数据。
当你直接去form.php时,它不知道$_POST['index']
有什么值(因为它没有设置)所以它在数学公式中使用零(0)。因此,总是输出一(1)。
如果您希望能够直接快速测试form.php页面,可以将$_POST['index']
更改为$_REQUEST['index']
,这允许POST和GET参数。这意味着,您可以在form.php?index=17
进行测试并获得输出18
(来自现有ajax的相同输出)。
当然,这有它自己的潜在问题,所以我建议你继续使用你的代码确实有用的知识。