-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 回答