0

ここに私の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 を表示してから、Name 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>';
    }
4

1 に答える 1

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は、単一の戦士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>';
于 2012-09-11T08:04:50.693 に答える