0

ライブ チェックを実行し、結果ごとにテーブルに行を作成したいと考えています。私がしていることは、ユーザーがテキストフィールドに結果を入力しているときに jquery でチェックを行うことです。

テキストフィールドは次のようになります。

<input name="teamNaam" type="text" class="personeelField" id="teamNaam" onkeyup="return check_teamnaam();"/>

そしてjqueryはこれです:

<script language="javascript">
    $(document).ready(function () {
        $('#Loading').hide();
    });

    function wait(msecs) {
        var start = new Date().getTime();
        var cur = start
        while (cur - start < msecs) {
            cur = new Date().getTime();
        }
    }

    function check_teamnaam() {

        var teamNaam = $("#teamNaam").val();
        if (teamNaam.length > 2) {
            $('#Loading').show();
            $.post("checkVriendenTeam.php", {
                teamNaam: $('#teamNaam').val(),
            }, function (response) {
                //$('#Info').fadeOut();
                // $('#Loading').hide();
                var reactie = response;
                var obj = jQuery.parseJSON(reactie);
                console.log(obj.Coureur);

                if (reactie == "Bezet") {
                    //fffkdf
                } else {



                    $('#Info tr').has('td').remove();
                    $('#Info tr:last').after('<tr class="tabeltitel" height="30"><td width="5%">#</td><td width="29%" class="tabeltitel">' + response.Teamnaam + '</td><td width="23%" class="tabeltitel">' + response.Manager + '</td><td width="24%" class="tabeltitel">Vrienden worden</td></tr>');
                }

            });
            return false;
        }
    }
</script>

「checkVriendenTeam.php」をチェックして、結果を返します。結果は次のようになります。

[{"Teamnaam":"test"},{"Teamnaam":"test2"},{"Teamnaam":"test3"}]

私はphpコードでこの結果を作ります:

if($_REQUEST)
{
    $teamNaam   = $_REQUEST['teamNaam'];
    $query = "select * from spelers where Teamnaam  LIKE '".strtolower($teamNaam)."%'";
    $results = mysql_query( $query) or die('ok');

    if(mysql_num_rows(@$results) > 0) // not available
    {   $response = array();
        while($inhoud = mysql_fetch_array($results)) {

        $response[]['Teamnaam'] = $inhoud['Teamnaam'];

        }
        $jsonData = json_encode($response); 
        echo $jsonData;
    }
    else
    {
        echo 'no result';
    }   
}

ただし、データなし (未定義) の行を 1 つだけ作成します。では、3行を取得するにはどうすればよいですか?

4

2 に答える 2

1

正しい応答があることを考慮して、3行を取得するには..jquery.eachループを使用する必要があります

これを試して

    ....
    else{
       $('#Info tr').has('td').remove();
       $.each(obj ,function(i,v){  <------ here
         $('#Info tr:last').after('<tr class="tabeltitel" height="30"><td width="5%">#</td><td width="29%" class="tabeltitel">' + v.Teamnaam + '</td><td width="23%" class="tabeltitel">' + v.Manager + '</td><td width="24%" class="tabeltitel">Vrienden worden</td></tr>');
       });
     }

注:オブジェクトにマネージャーがないため、なぜv.Managerそこを使用しているのかわかりません... PHPコードを介して送信するか、それを削除する必要があります...

于 2013-02-19T08:48:14.833 に答える
0

この行は正しくありません:

$('#Info tr:last').after('<tr class="tabeltitel" height="30"><td width="5%">#</td><td width="29%" class="tabeltitel">' + response.Teamnaam + '</td><td width="23%" class="tabeltitel">' + response.Manager + '</td><td width="24%" class="tabeltitel">Vrienden worden</td></tr>');

チーム名を取得するには、次を使用します。

obj[0].Teamnaam
obj[1].Teamnaam
// and so on....

これは、JSON を分割して「obj」として設定しているためです。したがって、obj には、PHP スクリプトによって指定されたオブジェクトの配列が含まれます。

于 2013-02-19T08:40:49.680 に答える