我可以使用jquery load来调用PHP函数吗?

时间:2011-12-31 01:37:06

标签: jquery

我不确定处理这个的最佳方法是什么,但这是我正在尝试做的事情。用户删除照片后,我需要使用新的统计信息和新表更新我的两个div。这最初是通过调用两个函数来完成的。我可以用jquery以某种方式调用这些PHP函数,还是有更好的方法?

以下是我目前的代码段:

<?php 
include('header.php');
?>

<script type="text/javascript">
$(document).ready(function() {

    $('.image_result li').click(function() {
        var imgInfo = $(this).attr('id').split(':');

        if(confirm('Are you sure you want to delete this image?')) {
            $.post('delete_image.php?image_id=' + imgInfo[0] + '&user_id=' + imgInfo[1], function(data) {

            // How can I update both divs (imageStats, and imageTable) by calling my two PHP functions?

            });
        }
    });
});
</script>

<div id="imageStats" ><?php echo get_image_stats(); ?></div>
<div id="imageTable" ><?php get_user_images(); ?></div>

2 个答案:

答案 0 :(得分:1)

创建一个仅显示函数输出的东西的文件,例如:

<强> ajax.php

// Include or require the file that contains your functions HERE

switch($_GET['action']) {

    case 'get_stats':
        echo get_image_stats();
        break;

    case 'get_images':
        get_user_images();
        break;
}

<强> JS

$.post('delete_image.php?image_id=' + imgInfo[0] + '&user_id=' + imgInfo[1], function(data) {

    $('#imageStats').load('new_php_file.php?action=get_stats');
    $('#imageTable').load('new_php_file.php?action=get_images');;
});

注意:有很多方法可以解决您的具体问题。这只是无数实施中的一种,但它应该给你足够的思考。

答案 1 :(得分:1)

您需要做的是调用PHP方法:get_image_stats()get_user_images()并在从jquery ajax post方法调用delete_image.php脚本时发回它们的输出。

假设get_image_stats()返回一个字母数字字符串,get_user_images()会返回一个完整的HTML表,而且没有“|”任何一个中的字符,我要做的是将get_image_stats()get_user_images()的输出与“|”连接起来并将其回显delete_image.php

关于帖子的成功,我会将数据拆分回来并更新统计数据和图像,如下所示:

var resp = data.split("|");
$('#imageStats').html(resp[0]);
$('#imageTable').html(resp[1]);

我推荐这种方法,因为我认为它会对现有的代码结构造成最小的改变。