1

スレッドメッセージングシステムを構築しています。AJAXを使用して、スレッドを取得したphpファイルにparent_idを送信しました(同じparent_idを持つ多くのメッセージ)

ajax で、parent_id を送信します

data:{
    parent_id: $(this).data('id'),
    ajax: 'true'
},

いくつかの行を取得するクエリを使用してphpファイルでこのparent_idを使用し、これを使用してそれらを返します:

$ret_msg_query_result=mysql_query($retrive_query);
while ($retrieved_msg_fetched=mysql_fetch_assoc($ret_msg_query_result))
{
echo json_encode($retrieved_msg_fetched) . "\n";    
}

そして、Ajax に戻ります。

$(document).ready(function() { 
    $(".msgsRow li.msg_subject,.msgsRow li.msg_content").click(function() { 
        $.ajax({ 
            type: 'POST',
            url: AJAX_URL+"front/RetrieveMsg.php", 
            data:{ parent_id: $(this).data('id'), ajax: 'true' }, 
            success: function(data) { 
                         var strLines = data.split("\n"); 
                         for (var i in strLines) { 
                             var obj = JSON.parse(strLines[i]); 
                             console.log(obj.id); 
                         }
                     } 
            }); 
        }); 
     });

Stackoverflow Sending/Parsing multiple JSON objectsの投稿から各行をオブジェクトに変換するこの方法 (分割) を取得しました

この関数は、メッセージの ID を取得するだけでなく、行全体を取得することもできます。しかし、私は得る

"Uncaught SyntaxError: 予期しない入力の終わり"

console.log(obj.id); の前の行を指しています。

StackOverflow でこのエラーを検索しましたが、通常は閉じ括弧が欠落しているように見えますが、見つけることができます。

ありがとう、

4

3 に答える 3

0

}この関数に onがありません

success: function(data){
                var strLines = data.split("\n");
                for (var i in strLines) {
                    var obj = JSON.parse(strLines[i]);
                    console.log(obj.id);
                **}**
            }

注: 4x* を削除します。これらは存在しないはずです :)

それはそれを修正する必要があります!

于 2012-12-04T17:32:53.540 に答える
0

私は問題を理解しました...それは、strLinesを{row}、{row}、{row}、のようなものにする「/ n」を使用して分割しているためです。

最後のコンマは、予期しない終了を引き起こします。そこで、カウンターを使って行数を確認し、それが最後の場合は「/n」を挿入しないでください

$counter=1;

while ($retrieved_msg_fetched=mysql_fetch_assoc($ret_msg_query_result))
{
    if ($counter==mysql_num_rows($ret_msg_query_result))
    {
    echo json_encode($retrieved_msg_fetched);
    }
    else{
    echo json_encode($retrieved_msg_fetched) . "\n";
    $counter++;
    }   
}

Limelights にもご協力いただきありがとうございます :)

于 2012-12-05T09:37:01.880 に答える