php没有';无法从ajax获取数据

php没有';无法从ajax获取数据,php,jquery,ajax,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();

我要做的是检测单击哪个回复按钮并将其索引发送到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:

我不知道这是怎么发生的


更新: 所以我将console.log()改为submit(),我希望ajax首先将索引发送到php,然后另一个a表单将像我键入的“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();
                        }
                    });
                })
            }
        });

PHP页面不会以任何方式存储
$\u POST
值-它通过ajax请求(或发送
$\u POST['index']
数据的其他请求)接收数据

当您直接转到form.php时,它不知道
$\u POST['index']
的值是多少(因为它没有设置),所以它在数学公式中使用零(0)。因此,始终输出一(1)

如果希望能够直接快速测试form.php页面,可以将
$\u POST['index']
更改为
$\u REQUEST['index']
,这允许使用POST和GET参数。也就是说,您可以在
form.php?index=17进行测试,并获得输出
18
(与现有ajax的输出相同)。
诚然,这也有其自身的潜在问题,因此我建议您在知道代码确实有效的情况下继续这样做。

“php上的结果:总是1”您如何准确地检查它?您可能也不需要嵌套循环。如果要按索引选择元素,请使用
:eq()
@Patrick Q i typed url转到该页面。这就解释了,不是吗。你知道
$\u POST['index']
做什么,对吗?在我看来,它工作得很好。哦,我想这就解释了为什么,但是我如何检查该值是否已经发送到php?它是根据每个请求发送的。您的
console.log(d)
验证数据是否已发送、是否正确“匹配”以及javascript函数是否正确检索。我假设您正在创建ajax表单提交函数(而不仅仅是数学函数)。使用当前设置,您可以假设PHP文件中的
$\u POST['index']
确实是通过ajax发送的索引。因此,如果($_POST['index']==7){echo“表单索引#7已提交-立即执行相关操作”}
,您可以执行类似的操作。好的,但是在我改变了console.log(d)之后;到$this.parent().submit();我在php页面上想的是结果是索引,但是,它仍然是1。如果您直接查看php文件,您在JS文件中所做的任何事情都不会影响结果[从技术上讲,您可以这样做]。在这里,您使用的是ajax,它可以工作——只需通过直接查看PHP停止验证即可:)
result on php: always 1.

result on console: correct number.
$(".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();
                        }
                    });
                })
            }
        });