这里是我的js脚本
<script>
function displayWarriors() {
$.ajax({
url: "display_warriors.php",
success: function(data) {
$("#tableWarrior").append(data);
}
});
return false;
}
function createWarrior() {
$.post( "create_warrior.php", {
"wname": $("#txtWname").val(),
"wtype": $("#txtWtype").val()
},
function(msg){
displayWarriors();
});
return false;
}
</script>
我在从事件中触发函数时使用这行html代码
<input onclick="return createWarrior()"
例如我在桌子上显示No.1 Name1,然后我添加了另一个名称2
我的输出
No.1 Name1
No.1 Name1
No.2 Name2
如何解决此问题
我的display_warriors.php
foreach($stmt as $warrior){
echo '<tr><td>'.$warrior['warrior_id'].'</td><td><a href="selected.php?id='.$warrior['warrior_id'].'">'.$warrior['warrior_name'].'</a></td><td>'.$warrior['warrior_type'].'</td></tr>';
}
答案 0 :(得分:3)
重复即将到来,因为你总是返回所有数据,其中一些已经存在于'tableWarrior'元素中,你应该更改语句
success: function(data) {
$("#tableWarrior").append(data);
}
到
success: function(data) {
$("#tableWarrior").empty();
$("#tableWarrior").append(data);
}
你应该改变
<script>
function displayWarriors(wname, wtype) {
$.ajax({
url: "display_warriors.php",
data: { name: wname, type: wtype},
success: function(data) {
$("#tableWarrior").append(data);
}
});
return false;
}
function createWarrior() {
var name = $("#txtWname").val(),
var type = $("#txtWtype").val()
$.post( "create_warrior.php", {
"wname": name,
"wtype": type
},
function(msg){
displayWarriors(name, type);
});
return false;
}
</script>
和你的display_warrior.php应该返回一个warrior tr。像
$name = $_REQUEST["name"];
$type = $_REQUEST["type"]
$warrior = GetYourWarriorWithItsNameAndType($name, $type);//Call a funciton here to get the warrior from its name and type.
echo '<tr><td>'.$warrior['warrior_id'].'</td><td><a href="selected.php?id='.$warrior['warrior_id'].'">'.$warrior['warrior_name'].'</a></td><td>'.$warrior['warrior_type'].'</td></tr>';