0

私のPHPスクリプト

<?php
//connect to server
//selecting the database
$temparr=array();
$count=0
$result = mysql_query("some query");
while($row = mysql_fetch_assoc($result))
{
   $temparr["$count"]= $row["value"] ;
   $count+=1;
}
echo json_encode($temparr);
mysql_close($conn); 
?>

私のjavascriptファイルのAJAX関数呼び出しは次のとおりです

function someFunction(){

  xmlhttp = new XMLHttpRequest();
  xmlhttp.open("GET", "mymethodpath", true);

  xmlhttp.onreadystatechange = function () {
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
        alert(xmlhttp.responseText);
        //this gives me a popup of the encoded data returned by the php script
        // the format i see in the popup window is ["1","2"]
        var temp=$.parseJSON(xmlhttp.responseText);

        alert(temp.count);
        //however this produces an undefined value

     }

  xmlhttp.send();
}

では、返された文字列を解析して正しいカウントを表示するにはどうすればよいですか (ここではカウントは 2 である必要があります)。

4

4 に答える 4

3

返された配列の要素数が必要だと思います。ただし、count適切な JavaScript プロパティではありません。temp.length代わりに使用してください。

于 2013-03-11T11:56:23.147 に答える
1

正しい方法は次のとおりです。

var obj = jQuery.parseJSON('["1","2"]');
alert(obj.length);

「.count」は「.length」に置き換える必要があります。ここで試してみてください:http://jsfiddle.net/4rrYz/

于 2013-03-11T12:02:05.137 に答える
1

jQuery を使用すると、ajax 呼び出しを簡素化できます。

function someFunction(){
    $.ajax({
        url: "mymethodpath",
        type: 'get',
        dataType: 'json',
        success: function(jsonObj) {
            alert(jsonObj.length);
        }
    });
}

使用することもできます$.getJSON()が、私自身は基本的な関数 (getJSON が舞台裏で使用するもの) にとどまることを好みます。

于 2013-03-11T12:03:44.723 に答える
0

ブラウザ ウィンドウで php スクリプトを呼び出すと、「count」という JSON オブジェクトがないことがわかります。配列は、0、1、2、... とラベル付けされた要素で構成されます。

temp[0] を表示しようとすると、最初の値が表示されます。

于 2013-03-11T11:58:22.973 に答える