php没有';无法从ajax获取数据
我要做的是检测单击哪个回复按钮并将其索引发送到php jQuery: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();
$(".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();
}
});
})
}
});