2011-12-31 102 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

相關問題