通常情况下,我是jfGit的忠实用户,但我一直在寻找网络,无法使用此代码。
我的设置:
意图
我想要做的事:通过点击链接或按钮,可以更新特定的表格行。
当前解决方案
这是我到目前为止尝试过的代码。
Ajax / jQuery代码,在body标签下(是正确的位置吗?):
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('a.pop').click(function() {
var popID = $(this).attr('rel');
$.ajax({
url: 'update.php',
method: 'GET',
data: 'userID=' + popID,
success: function(returnData){
$(popID).html(data);
$(popID).dialog();
alert('Load was performed.');
}
});
});
});
</script>
表格代码(用php打印):
echo "<div id=\"$ID\">";
// all tr + td from table
echo "<td><a href=\"#\" id=\"clickingEvent\" class=\"pop\" rel=\"$ID\">Update</a></td>\n";
echo "</tr>\n";
echo "</div>";
结果
目前,我根本没有得到任何结果,AJAX甚至没有加载php页面。单击更新按钮后,没有任何反应。
非常感谢任何帮助,提前谢谢你:)
编辑:
部分解决方案
现在代码中的Ajax部分正常工作,感谢您的所有输入!
现在发生的事情是添加表格标签前面的新行,旧行仍然存在。当我看一下生成的源代码时,它会说我指定了一个div行为'popID'的新行。向下滚动,似乎删除了旧行的div标记。
我能以任何方式解决这个问题吗?
答案 0 :(得分:2)
请注意,您应该将检索到的数据添加到popID中。正确的方法是将您的功能修改为:
$.ajax({
url: 'update.php',
method: 'GET',
data: 'userID=' + popID,
success: function(new_data){
$(popID).html(new_data);
$(popID).dialog();
alert('Load was performed.');
}
});
请注意,returnData现在是new_data,并且您使用相同的名称追加它
答案 1 :(得分:2)
尝试用以下方法替换ajax函数:
$.get('update.php',{userID: popID}, function(data) {
$("#" + popID).html(data);
$("#" + popID).dialog();
alert('Load was performed.');
});
此外,请使用:$("a.pop").click(...)
$(document).on('click', 'a.pop', function () { ...});
这将为您提供返回相同jQuery事件的新按钮
答案 2 :(得分:0)
$(popID).html(data);
应$(popID).html(returnData);
吗?或者这是一个错字?
答案 3 :(得分:0)
如果你有update.php
:
UPDATE
sql语句然后......你必须得到更新,因为它是ajax查询中的superultrastrange错误,在服务器端脚本中有特殊的UPDATE
语句。但将
Use `REPLACE` statement instead.
我花了很多时间寻找这个解决方案,真的太多了。我无法理解为什么会发生这种情况,因为当我使用自己的params调试整个脚本时,一切正常。