#php #javascript #jquery
#php #javascript #jquery
Вопрос:
Хорошо, вот моя проблема после нескольких месяцев поиска в Интернете. Я хочу получить правильную ссылку из jquery, чтобы взять правильный div и показать их на странице. На данный момент файлы получают root с помощью GET
Я получил 2 файла.
shopping_cart.php и jquery-oscart.js
jquery-oscart.js $.ajax({ введите: 'POST', url: encodeURI($(location).attr('href')) 'amp;action=update_product amp;ajax =1', данные: $('form[name=cart_quantity]').serialize(), async: false, успех: функция (данные) { $("#content-body").html(данные); //Hide_Load(); //update_cart(); }, Тип данных: 'html' }); // Обновление общего количества корзин // $.ajax({ введите: 'POST', url: encodeURI($(location).attr('href')) 'amp;action=update_productamp;show_total=1 amp; ajax = 1', данные: $('form').serialize(), успех: функция (данные) { $('#boxcart-total').html (данные); //Hide_Load(); } }); возврат (false); });
Действие: .attr('action')
Отображаемый div должен быть #content_body из файла shoppingcart.
В shoppingcart.php файл есть действие, которое вызывает:
<тип скрипта="текст / javascript" src="js/jquery-oscart.js "></script> <тип скрипта="текст / javascript" src="js/jquery-1.4.2.min.js "></script>
В нормальном состоянии проблем нет.
вот мой вопрос.
При выполнении файлов Firefox выдает мне следующие правила:
ОПУБЛИКОВАТЬ домен ../index.php?option=com_oscommerce amp;osMod =shopping_cartamp;Itemid = 2amp;action =update_product amp;ajax = 1 ПОЛУЧИТЬ домен ../index.php?option=com_oscommerceamp;osMod=shopping_cartamp;Itemid =2 ОПУБЛИКОВАТЬ domain../index.php?option=com_oscommerceamp;osMod=shopping_cartamp;Itemid=2amp;action=update_productamp;show_total=1amp;ajax=1 ПОЛУЧИТЬ домен ../index.php?option=com_oscommerceamp;osMod=shopping_cartamp;Itemid =2
вместо
ОПУБЛИКОВАТЬ домен ../index.php?option=com_oscommerce amp;osMod =shopping_cartamp;Itemid = 2amp;action =update_product amp;ajax = 1 ПОЛУЧИТЬ домен ../index.php?option=com_oscommerce amp;osMod=shopping_cartamp;Itemid = 2 amp; ajax = 1 ОПУБЛИКОВАТЬ domain../index.php?option=com_oscommerceamp;osMod=shopping_cartamp;Itemid=2amp;action=update_productamp;show_total=1amp;ajax=1 ПОЛУЧИТЬ домен ../index.php?option=com_oscommerce amp;osMod =shopping_cartamp;Itemid=2 amp;show_total = 1 amp; ajax = 1
В GET. Я пропускаю amp;ajax = 1 и amp;show_total =1 amp;ajax = 1
Что-то пришлось изменить в jquery_oscart.js но я не знаю, где изменить…
Я попробовал .загрузите функцию по правильной ссылке, но это не решение.
Я надеюсь, что кто-нибудь сможет мне с этим помочь.
Исходный код:
jQuery.ajax({
type: 'POST',
url: encodeURI($('form[name=cart_quantity]').attr('action')) 'amp;ajax=1',
data: jQuery('form[name=cart_quantity]').serialize(),
success: function(data) {
jQuery("#content-body").html(data);
//Hide_Load();
//update_cart();
}
});
// Updating cart total
jQuery.ajax({
type: 'POST',
url: encodeURI($('form[name=cart_quantity]').attr('action')) 'amp;show_total=1amp;ajax=1',
data: jQuery('form').serialize(),
success: function(data) {
jQuery('#boxcart-total').html(data);
//Hide_Load();
}
});
возвращает (false);
});
это дает ссылку:
домен / index.php amp; ajax = 1
вместо
домен ../index.php?option=com_oscommerce amp;osMod = shopping_cart amp;Itemid = 2 amp;action =update_product amp; ajax = 1
Может ли это быть что-то с ‘формой’? Кажется, это отправляет меня в index.php вместо index.php?option=com_oscommerce amp;osMod =shopping_cart
Проблема решена? опция… ссылка была скрыта. Показан другой файл, который я получаю. Теперь ссылки POST в порядке. Проблема, с которой я столкнулся, заключается только в ссылке GET.
Кажется, url: encodeURI($(‘form[name=cart_quantity]’).attr(‘action’)) ‘amp;ajax=1’,
Получает 2 ссылки на сообщение в ea, возвращающее GET. Возвращающая ссылка пропустила amp;ajax = 1 в конце.
Ответ №1:
Возможно, попробуйте
url: encodeURI($(location).attr('href') 'amp;action=update_productamp;ajax=1'),
(Я помещаю amp;action = blahblah внутри encodeURI)
Комментарии:
1. к сожалению, это не помогает. ничего не изменилось. когда я удаляю action = update_product и правило GET исчезает, что бы это могло быть?
2. Похоже, что все запросы должны быть POSTs. Возможно, пользователь нажимает кнопку, чтобы активировать запрос, но действие кнопки по умолчанию (отправить форму) также выполняется? Javascript, который вызывает вызов $ ajax, должен возвращать false или preventDefault.
Ответ №2:
Проблему можно решить, добавив ‘format = ajax’ в url
Нравится:
jQuery.ajax({
type: 'POST',
url: encodeURI($('form[name=cart_quantity]').attr('action')) 'amp;format=ajax' 'amp;ajax=1',
data: jQuery('form[name=cart_quantity]').serialize(),
success: function(data) {
jQuery("#content-body").html(data);
//Hide_Load();
//update_cart();
}
});
// Updating cart total
jQuery.ajax({
type: 'POST',
url: encodeURI($('form[name=cart_quantity]').attr('action')) 'amp;format=ajax' 'amp;show_total=1amp;ajax=1',
data: jQuery('form').serialize(),
success: function(data) {
jQuery('#boxcart-total').html(data);
//Hide_Load();
}
});