php ajax工作,并没有工作

时间:2015-09-24 06:39:16

标签: javascript php jquery html ajax

HTML

echo '<form id="f_'.$id.'" method="post">';
echo '<input type="hidden" name="re_ti" value="'.$ti.'">';
echo '</form>';
echo '<button id="rBtn" l="#f_'.$id.'" class="button_accept" onclick="document.getElementById(\'review\').style.display = \'block\';">Review</button>';

AJAX

$(document).ready(function(){
$('#rBtn').click(function() {
     var log = $(this).attr("l");
     alert(l);
     $.ajax({
           type:"post",
           url:"php_parsers/review.php",
           data: $(l).serialize(),
           success: function(response){
               $("#reviewMain").html(response);
           }
     });
     $.ajax({
           type:"post",
           url:"php_parsers/comment.php",
           data: $(l).serialize(),
           success: function(response){
               $("#reviewSub").html(response);
           }
     });
  });
});

因此HTML代码与PHP一致,每个表单都有不同的ID 示例表单ID为#f_234324(它是计数)。

使用while回显表单,如果只有一个回显,则一切正常,但如果有多个表单被回显,则我的Ajax不起作用。

Ajax应该获得l并使用l将数据更改为我想要的论坛。

如果有人知道更好的解释方法,请告诉我。如果有一个表单,则会弹出警告,但如果有两个表单,则会弹出警告。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

我认为问题在于,您的文档中有多个rBtn个ID,因为如果php中的while循环有多个按钮,那么您获得的不仅仅是一个身份rBtn。您应该使用唯一的ID。我会在选择器中使用类名:

$(document).ready(function(){
   $('.button_accept').click(function() {
     var log = $(this).attr("l");
     alert(l);
     $.ajax({
           type:"post",
           url:"php_parsers/review.php",
           data: $(l).serialize(),
           success: function(response){
               $("#reviewMain").html(response);
           }
     });
     $.ajax({
           type:"post",
           url:"php_parsers/comment.php",
           data: $(l).serialize(),
           success: function(response){
               $("#reviewSub").html(response);
           }
     });
  });
});

因此,在具有类button_accept的所有元素上设置click事件处理程序,$(this)将在单击时返回单击的按钮。我希望这可以解决你的问题。

顺便说一下,您应该将l属性命名为data-l以编写有效的html5代码。按钮元素没有属性l,命名空间data-*命名您自己的(新)属性。