php无法从ajax

时间:2017-12-05 16:47:16

标签: php jquery ajax

我正在做的是我想要检测我点击哪个回复按钮并将其索引发送到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();
                        }
                    });
                })
            }
        });

1 个答案:

答案 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的相同输出)。 当然,这有它自己的潜在问题,所以我建议你继续使用你的代码确实有用的知识。