在IE中显示逗号(,)的Ajax数组

时间:2013-01-07 14:04:33

标签: php javascript ajax internet-explorer

我不明白为什么我会出现这个问题。在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有关吗?

1 个答案:

答案 0 :(得分:1)

var obj = jQuery.parseJSON( lines );

这将生成一个数组。

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

这将将数组转换为字符串看起来非常像这样:'...</tr>,<tr ...'然后添加新行。

如果要连接字符串客户端的元素(为什么不在服务器端?),可以使用数组方法join

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