尝试通过JSON为ajax网站输出html php。
PHP:
$return = "<div id='content'><ul class='allitems'>";
while($row = mysql_fetch_array($result)){
$return .= "<li class='items'>" . "<div class='itemheading'><div class='controls'> <span class='votes'>" . $row['votes'] . "</span>";
$return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='id' value='{$row['id']}'/><input type='submit' class='button plus' value='+1' /></form>";
$return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='id-' value='{$row['id']}'/><input type='submit' class='button minus' value='-1' /></form> ";
$return .= "<form class='actions' action='index.php' method='POST'><input type='hidden' name='idDel' value='{$row['id']}'/><input type='submit' class='button delete' value='X' /></form> ";
$return .= "</div><span class='title'>" . $row['name'] . "</span></div><span class='infotext'>". $row['infotext'] ."</span></li>";
}
$return .= "</ul></div>";
echo json_encode($return);
如果你去这个php页面的输出在整个地方都有斜线(\/
),例如。 <\/span><\/form> <\/div>Make the app look all nice<\/span>
并且不输出为常规html。
这是将显示putput的ajaxpage的代码:
<script id="source" language="javascript" type="text/javascript">
$(function () {
$.ajax({url: 'retrieve.php', dataType: 'json'}).done(function(data) {
var html = data[3];
$('#output')
.append("<b>id: </b>"+html)
});
});
</script>
问题在于,当<
var html = rows[0];
时,d
[1]
会输出{{1}}。一次只显示1个字符。
如何一次性查看所有html以及实际的html代码?
答案 0 :(得分:1)
JSON以类似方式返回数组中的内容(我也是新的,所以我不完全确定)所以你必须在数组中创建所有html一个对象。下面我将它设置为在关联数组中使用'html'进行参考。
php页面上的将此echo json_encode($return);
更改为此
echo json_encode(array('html' => $return));
在ajax页面上,您需要稍微更改一下。
取代:
var html = data[3];
$('#output')
.append("<b>id: </b>"+html)
使用:
var html = data['html'];
$('#content')
.append(html)
或者为了使它更整洁你甚至不必为html制作变量你可以直接从JSON数组中获取它:
$('#content')
.append(data['html'])
答案 1 :(得分:0)
您不必为此使用JSON;只需在jQuery中使用.load()即可将HTML片段直接加载到元素中。
$("#output").load("retrieve.php");