我不明白为什么我会出现这个问题。在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有关吗?
答案 0 :(得分:1)
var obj = jQuery.parseJSON( lines );
这将生成一个数组。
... .append( obj + '<tr ...
这将将数组转换为字符串看起来非常像这样:'...</tr>,<tr ...'
然后添加新行。
如果要连接字符串客户端的元素(为什么不在服务器端?),可以使用数组方法join
:
... .append( obj.join('') + '<tr ...