Я пытаюсь добавить ajax в существующий скрипт, все идет хорошо для первой отправки, но последующие не работают должным образом.
add_action('wp_head', 'my_special_action_javascript');
add_action('wp_ajax_my_special_action', 'my_special_action_callback');
add_action('wp_ajax_nopriv_my_special_action', 'my_special_action_callback');
add_action('wp_ajax_my_cart', 'my_cart_callback');
add_action('wp_ajax_nopriv_my_cart', 'my_cart_callback');
а до них у меня тоже естьwp_enqueue_script('jquery');
function my_special_action_javascript() {
?>
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function() {
jQuery(".addtocart").submit(function() {
var data = {action: 'my_special_action',post:jQuery(this).serialize() };
jQuery.post("<?php echo admin_url('admin-ajax.php'); ?>", data,
function(response){
jQuery(".eshopajax").replaceWith(response);
});
function upCart(){
var tdata = {action: 'my_cart'};
jQuery.post("<?php echo admin_url('admin-ajax.php'); ?>", tdata,
function(response){
jQuery(".ajaxcart").replaceWith(response);
});
}
setTimeout (upCart,500);
return false;
});
});
//]]>
</script>
<?php
}
Примечания:
.addtocart — это класс формы (и будут случаи, когда на странице будет несколько форм).
.eshopax — это раздел в форме, где я отображаю ответ (хотя на самом деле я должен добавить это через сценарий тоже).
.ajaxcart — это корзина в виджетах, которую я пытаюсь автоматически обновить.
setTimeout — добавлено для замедления обновления корзины, чтобы позволить завершиться первому процессу.
Теперь, как объяснено выше, работает по назначению, один раз. Но когда я снова отправляю форму, даже с другими значениями отображение больше не меняется, но корзина обновляется (upCart), и текст ответа явно не добавляется. Кроме того, похоже, что он не распознает измененные данные формы.
Итак, как мне сбросить все, чтобы он распознавал возможные новые детали формы? Кроме того, я не думаю, что jQuery.post в функции upCart тоже правильный (но он работает…).
любая помощь приветствуется.
(первоначально вопрос был задан на форумах поддержки WordPress).
ааа нвм, разобрался:
@Rich Pedley: что вы подразумеваете под «разобрался»? Вы устранили проблему?