-5

なぜこの問題が発生するのかわかりません。Chrome と Firefox では、私の ajax はうまく機能し、非常に多くのエラーが発生しますが、IE で Ajax リクエストを実行すると、結果の出力はデータですが、ページの上部に一連のコンマ (,) が表示されます。

例:

,
,
,
,
<tr> row1 </tr>
<tr> row2 </tr>
<tr> row3 </tr>
<tr> row4 </tr>

出力を次のようにしたい:

    <tr> row1 </tr>
    <tr> row2 </tr>
    <tr> row3 </tr>
    <tr> row4 </tr>

コード: index.php

function indexMostRecent(linkcode) {
            var lines = '';
                $.ajax( {
                type: 'POST',
                url:'http://site.test.co.uk/shortlinks/nextLines.php', 
                data: { 'indexLeft': 1 },
                cache: false,
            }).done( function(jsondata) {

            lines = jsondata; 

            var obj = jQuery.parseJSON( lines );

            $('#leftIndex').append( obj + '<tr id="less"><td> End </td></tr> ' );
            $('#indexLeft').remove();
        });
    };


    $('#indexLeft').click(indexMostRecent);

nextlines.php

<?php
include ('connection.php');
//these are the queries for the index page
    if(isSet($_POST['indexLeft'])){

            $mostRec = "SELECT * FROM shortlink_analytics ORDER BY hitTime DESC LIMIT 11, 999999";

            $array=array();

            $loadRec = mysql_query($mostRec);

            while($row = mysql_fetch_array($loadRec))
            {
                $array[] = '<tr><td class="overflow"><a href = "info.php?link='. $row['shortlink'] .'">hud.ac/' . $row['shortlink'] . '</a> - ' . $row['hitTime'] . '</td></tr>';
            } 

            echo json_encode($array);

        }

?>

これは何が原因ですか?どうすれば解決できますか?AJAX リクエスト中に呼び出される PHP と何か関係があるのでしょうか?

4

1 に答える 1

1
var obj = jQuery.parseJSON( lines );

これにより、配列が生成されます。

... .append( obj + '<tr ...

これにより、配列が次のように見える文字列に変換され'...</tr>,<tr ...'ます。新しい行を追加する前に。

文字列の要素をクライアント側で連結したい場合 (なぜサーバー側で連結しないのですか?)、配列メソッドを使用できますjoin

... .append( obj.join('') + '<tr ...
于 2013-01-07T14:21:53.913 に答える