2011-12-31 6 views
0

Я не уверен, что лучший способ справиться с этим, но вот что я пытаюсь сделать. После того, как пользователь удалит фотографию, мне нужно обновить два моих div с новой статистикой и новой таблицей. Это делается первоначально, вызывая две функции. Могу ли я назвать эти функции PHP с помощью jquery каким-то образом или есть лучший способ?Могу ли я использовать загрузку 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

Что вам нужно сделать, это вызвать ваши методы PHP: get_image_stats() и get_user_images() и отправить их выход назад, когда delete_image.php скрипт вызывается из метода JQuery Ajax пост.

Предполагая, что 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

+0

Единственная проблема, с которой я сейчас сталкиваюсь, это то, что я потерял событие click после загрузки новой таблицы ... – Paul

+0

Пожалуйста, отредактируйте вопрос и добавьте вывод двух функций PHP, т. Е. Новой статистики и новой таблицы. – Abbas

Смежные вопросы