[英]php ajax works, and doesn't work
的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
更改数据:到我想要的论坛。
如果有人知道更好的解释方式,请告诉我。 如果存在一种形式,则弹出警报,如果存在两种形式,则不会弹出。
我想念什么?
我认为问题在于,您的文档中有多个rBtn
ID,因为如果php中的while循环产生多个按钮,则您有多个ID 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);
}
});
});
});
因此,在所有具有class button_accept
类的元素上设置了click事件处理程序,并且$(this)
将返回click上的clicked按钮。 我希望可以解决您的问题。
顺便说一句 ,您应该将您的l
属性命名为data-l
以编写有效的html5代码。 button元素没有属性l
,名称空间data-*
为您自己的(新)属性命名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.