0

mysql からデータをフェッチし、json_encode. 次に、 myはviaJQUERYをキャッチし、結果を my に追加します。JSON$.getJSON<ul>

JQUERYによってキャプチャされたデータがindex.phpに印刷されない理由を理解しようとしています

これは私のindex.php

<html>
<?php 

    include_once('connect.php');

    $sql    = "SELECT * FROM data";
    $query  = mysql_query($sql);
    $result = array(); 


    while($row = mysql_fetch_array($query))  
        array_push($result,                  
            array(                          
            'name' => $row[1],              
            'msg' => $row[2]));

    echo json_encode(array("key" => $result));      
?>

<body>

<ul>
    //insert fetch data here
</ul>



<script type="text/javascript" src="./js/jquery.js"></script>
<script type="text/javascript" src="./js/custom.js"></script>
</body>
</html>

ここに私のJQUERYがあります

function my_function() {
     $.getJSON("index.php", function(data) {
       $.each(data.key, function(){
       $("ul").append("<li>Name: "+this['name']+"</li>"
                      "<li>message: "+this['msg']+ "</li>");
       });
 });
}
4

2 に答える 2

0

最初に: index.php の出力自体をチェックして、有効な json が表示されているかどうかを確認します。無効な UTF8 文字はありますか? その場合、json_encode の出力は null です。

2番目:jsonをdataTypeとしてヒントするプレーンなajaxメソッドを使用します:

jQuery.ajax({
       url: 'index.php',
       dataType: 'json'
}).done(function(data) {
    for (i=1;i<data.length;i++) {
        datarow=data[i];
            $("ul").append("<li>Name: "+datarow.name+"</li>");
            $("ul").append("<li>message: "+datarow.msg+ "</li>");
        }

       });

3 番目: json の生成と表示に同じスクリプトを使用しないでください。すべてを前面で行う場合、アプリからビューを切り離しても意味がありません。その場合、前の回答で述べたように、プレーン php を使用してすべてを生成することもできます。(@アブドゥル・シー)

于 2013-08-21T14:49:39.967 に答える