页面元素的定义如下。
<div id="readf" class="tabbertab">
<h2>First Reading</h2>
<div id='titlefe' class='rtitle'>
</div>
<div id='readfe' class='rtext'>
</div>
</div>
我对php脚本进行ajax调用,以便向这些页面元素添加数据。
<script>
$('#readings').ready(function(){
$.ajax({
url: "loadenglish.php",
type: "GET",
data: { },
cache: false,
async: true,
success: function (response) {
if (response != '')
{
alert (response);
}
},
error: function (request, status, error) {
alert ("status "+status+" error "+error+"responseText "+request.responseText);
},
});
});
</script>
php脚本获取数据并执行脚本回显以添加数据。
<?php
$titlefe = 'text 1';
$readfe = 'text 2';
echo "<script type='text/javascript'> $('#titlefe').append('".$titlefe."'); $('#readfe').append('".$readfe."'); </script>";
?>
警告语句显示php脚本获取正确的信息。但页面元素未更新。是否有不同的方法可以将$titlefe
添加到元素ID titlefe
?
答案 0 :(得分:0)
在成功回调中的提醒后尝试eval(response);
。
答案 1 :(得分:0)
返回javascript方法不是一个好主意。您应该以JSON格式返回数据,并在客户端使用javascript来执行实际更新。
您的PHP返回语句应如下所示:
echo "{ 'titlefe': '" + $titlefe + "', 'readfe': '" + $readfe + "' }";
你的成功回电应该是这样的:
success: function(response) {
$('#titlefe').text(response.titlefe);
$('#readfe').text(response.readfe);
}
答案 2 :(得分:0)
如果您坚持要返回JavaScript,那么您应该使用getScript()
而不是Ajax get。
答案 3 :(得分:0)
除了MK_Dev发布的内容,您还可以使用PHP函数json_encode();
<?php
//loadenglish.php
$params = array(
'titlefe' => 'text 1',
'readfe' => 'text 2',
);
echo json_encode($params);
还有一个jQuery函数$.getJSON(),它是像你这样的$ .ajax()函数使用的快捷方式。