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';
    }   
}

但它只会创建一行没有任何数据(未定义)。那么我需要做什么才能获得 3 行?

4

2 回答 2

1

考虑到你有正确的反应,得到三行..你必须使用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 回答