0

こんにちは、配列をphpからjavascriptに戻す作業をしています。配列を返すときに配列でjson_encodeを使用する必要があることをオンラインで学びましたが、ajaxにあるので、ループする方法がわかりresponse[0]ません。 innerHTML を使用したドキュメントは、配列のように見えますが、for ループを使用すると、上記のように、最初のエントリではなく [ に等しい各文字が得られます。私は何を間違っていますか?どんな助けでも大歓迎です![response[1]"response[0]

PHP

<?PHP
    $link = mysql_connect('localhost', 'root', 'root');
    mysql_select_db("Colleges");
    $result = mysql_query("SELECT * FROM `Colleges` ORDER BY School");
    $schools = array();
    while ($row = mysql_fetch_array($result)) {
        array_push($schools, $row['School']);
    }
    mysql_close();
    die(json_encode($schools));
?>

アヤックス

<script type="text/javascript">
    function schools(){
        $.ajax({
            url: "Schools.php",
                type: "POST",
            success: function (response) {
                //Loop over response
            }
        });
    }
</script>
4

4 に答える 4

1

JSON 応答 (実際には文字列) をデコードして、オブジェクトと同じように処理できるようにする必要があります。

var respObj = JSON.parse(response);

dataType: 'json'他の方法では、JSON がサーバーによって ( ajax パラメーターまたはContent-Type: application/json応答ヘッダーと共に) 提供されるという jQuery に注意することです。

于 2012-08-23T15:48:36.840 に答える
0

Javascript

for ( variable in response ) {
    alert(results[variable]);
}

JQuery

$.each(response, function(ind, val){
   alert("index:" + ind + ". value:" + val);
});
于 2012-08-23T15:50:26.537 に答える
0
Use Following if it helps

 res=jQuery.parseJSON(response);

for(i=0;i<res.length;i++)
{
  alert(res[i].propertyname);

}

ここで、プロパティ名は json のキーを意味します。あなたのケースでは、「School」にするか、数値 i または値だけを res[i] にすることもできます。

于 2012-08-23T15:52:20.640 に答える
0

メソッドに渡すオブジェクトでは、結果が json であることを指定するためajaxに追加を試みる必要があります。dataType: 'json'header('Content-type: application/json');die();

そうすることresponseで、文字列ではなく、期待するオブジェクトになります。

response = $.parseJSON(response);最後に、それをそのままにして、応答文字列を取得してオブジェクトに変換する成功コールバックを呼び出すことができます。 http://api.jquery.com/jQuery.parseJSON/を参照してください。

于 2012-08-23T15:52:02.937 に答える