我不确定处理这个的最佳方法是什么,但这是我正在尝试做的事情。用户删除照片后,我需要使用新的统计信息和新表更新我的两个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>
答案 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]);
我推荐这种方法,因为我认为它会对现有的代码结构造成最小的改变。