Jquery выберите без формы отправки - PullRequest
0 голосов
/ 24 марта 2011

Я хочу сделать селектор для пользователей, чтобы заказать цены в порядке asc / desc в виртуальном магазине.

Проблема в том, что я не хочу использовать форму (которая будет отправляться при каждом обновлении страницы и т. Д.). Итак, я хочу выбрать (jquery select) вне формы, чтобы, когда пользователь выбирает параметр, я мог установить значение переменной php (чтобы узнать, как я буду выполнять сортировку).

возможно ли сделать это упорядочение, используя select вне формы (используя Jquery)? Можно ли установить переменную php на элемент списка? (до сих пор я отправлял по стоимости сообщения и устанавливал эту переменную в соответствии с данными сообщения, полученными из формы)

Спасибо

Ответы [ 4 ]

3 голосов
/ 24 марта 2011

Попробуйте использовать AJAX вместо отправки формы. Есть много способов сделать это ..

$('select').change(function() {
    $.post($(this).closest('form').attr('action'), $(this).closest('form').serialize(), function(data) {
        alert(data);//response from PHP
    });
});

Сохраните выбор в форме здесь для обратной совместимости и добавьте этот обработчик события:

$('form').submit(function() {
    return false;
});

<ч /> Edit:

Нет версии форм, установите свои собственные параметры:

var href = 'http://yoursite.com';

$('select').change(function() {
    $.post(href, { val : $(':selected', this).val()}, function(data) {
        alert(data);//response from PHP
    });
});
1 голос
/ 24 марта 2011

Вы можете использовать событие "change" для выбора и отправки вызова ajax (довольно безболезненно, используя jQuery). Вам захочется прочитать Ajax, чтобы вы поняли основную идею (я уверен, что здесь есть публикация) и посмотрите на jQuery api на ajax .

Ajax - это метод отправки / получения информации на сервер без использования формы или перезагрузки всей страницы. Пример того, как сделать с выбором, будет:

$("#yourSelectID").change(function(){
    $.ajax({
        url:"site.php",
        data:{"returnVal":$(this).val()},
        success:function(){ /* do any further processing stuff here */}
    });
});

Обратите внимание, что при запуске вызова ajax другие события на странице будут выполняться одновременно, поэтому не ожидайте, что ajax произойдет в порядке стека.

1 голос
/ 24 марта 2011

Вам не нужна форма, чтобы активировать событие "изменить" на выбор. Просто выберите ваш выбор в jQuery и привяжите к нему событие «change».

$(function()
{

   $("select").change(function()
   {

       // Do something

   });

});
1 голос
/ 24 марта 2011

Если вы просто хотите запретить обновление страницы, вы можете вернуть false в обратном вызове onsubmit-event.

...