如何在发送ajax数据后加载php文件

时间:2014-07-09 20:49:01

标签: php jquery ajax

所以我有2个文件file1.php包含所有的php和ajax,而file2.php只有php。

$_POST["there_id"]将通过ajax从file1.php页面发送到file2.php。

file1.php代码:

<div class="list_items">
    <a href="" class="box" id="56545"><li><p>content here ...</p></a>
</div>

<div class="content_area">
    //load ajax content here
</div>

$(".box").on("click", function(e) {
    e.preventDefault();
    var there_id = $(this).attr("id");
    $.ajax({
        url: "indexnew.php",
        type: "POST",
        data: { there_id : there_id}
    });
});

file2.php代码:

<div id="file2content>
<?php
    $there_id = $_POST['there_id'];
    $user_id = 5; 
    $fetch_data = regular_query("SELECT * FROM contents WHERE 
    (user_by = :me or user_by + :them) AND (user_to = :me or user_to = :them)", 
    ["me" => $user_id, "them" = $there_id], $conn);

    foreach ($fetch_data as $data) : ?>

    <a href=""><li><p>database data here</p></a>

<?php
     endforeach;
?>

</div>

现在我要做的是当file2.php完成php并且列表项可用时我想在file1.php上加载file2contentscontent_area

2 个答案:

答案 0 :(得分:2)

$(".box").on("click", function(e) {
   e.preventDefault();
   var there_id = $(this).attr("id");
   $.ajax({
       url: "indexnew.php",
       type: "POST",
       data: { there_id : there_id},
       success: function(data) {
           $('.content_area').html(data);
       }
   });
});

但是,content_area应该是一个id而不是一个类,因此它是唯一的。

由于您只是返回html,因此可以使用.load()函数对其进行简化。

$('.box').on('click', function(e) {
    e.preventDefault();
    var there_id = $(this).attr('id');
    $('.content_area').load('indexnew.php', {there_id: there_id});
});

答案 1 :(得分:0)

success: function(data) { $(".content_area").html(data); }

如果我理解正确的话,将上述内容添加到您的AJAX调用中应该按照您的意愿执行。