2011-12-31 71 views
0

我不知道处理这个问题的最佳方法是什么,但这是我想要做的。用户删除照片后,我需要用新的统计数据和新表格更新我的两个div。这最初是通过调用两个函数完成的。我可以以某种方式用jquery调用这些PHP函数,还是有更好的方法?我可以使用jquery load调用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> 
+0

任何以前的研究? – 2011-12-31 01:59:28

回答

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

你需要做的就是打电话给你的PHP方法:get_image_stats()get_user_images()和发送它们的输出回来的时候delete_image.php脚本从jQuery ajax的POST方法调用。

假设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]); 

我推荐这种方法,因为我认为这将导致至少改变现有的代码结构体。

+0

很聪明......我总是觉得很想念这个东西......谢谢! – Paul 2011-12-31 02:20:26

+0

我现在唯一的问题是,在新表加载后我松开了我的点击事件... – Paul 2011-12-31 02:48:20

+0

请编辑问题并添加两个PHP函数的输出,即新的统计信息和新表。 – Abbas 2011-12-31 02:53:47

相关问题