更新php脚本中的页面元素

时间:2012-05-04 00:27:30

标签: php javascript ajax

页面元素的定义如下。

<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

4 个答案:

答案 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()函数使用的快捷方式。