我想让用户在虚拟商店中以asc / desc顺序订购价格。
问题在于我不想使用表单(每次刷新页面时都会提交表单等)。所以,我想在表单外面选择(jquery select),这样当用户选择一个选项时,我可以设置一个php变量的值(为了知道如何进行排序)。
是否可以使用表单外的select(使用Jquery)进行此排序?是否可以设置一个php变量onselect list元素? (到现在为止,我曾经通过post值发送,并根据从表单收到的帖子数据设置该变量)
谢谢
答案 0 :(得分:3)
尝试使用AJAX而不是表单提交。有很多方法可以做到这一点..
$('select').change(function() {
$.post($(this).closest('form').attr('action'), $(this).closest('form').serialize(), function(data) {
alert(data);//response from PHP
});
});
将select保留在表单中以实现向后兼容性并添加此事件处理程序:
$('form').submit(function() {
return false;
});
<小时/> 修改强>
没有表格版本,请设置您自己的选项:
var href = 'http://yoursite.com';
$('select').change(function() {
$.post(href, { val : $(':selected', this).val()}, function(data) {
alert(data);//response from PHP
});
});
答案 1 :(得分:1)
如果您只想阻止页面刷新,可以在onsubmit-event回调中返回false。
答案 2 :(得分:1)
您可以使用“更改”事件进行选择并发送ajax调用(使用jQuery相当轻松)。您将需要阅读Ajax,以便获得基本想法(我确定这里有一个帖子)并查看jQuery api on ajax。
Ajax是一种在不使用表单或重新加载整个页面的情况下将信息发送/获取回服务器的方法。如何处理选择的一个例子是:
$("#yourSelectID").change(function(){
$.ajax({
url:"site.php",
data:{"returnVal":$(this).val()},
success:function(){ /* do any further processing stuff here */}
});
});
请注意,当您运行ajax调用时,页面上的其他事件将同时运行,因此不要指望在堆栈顺序中发生ajax。
答案 3 :(得分:1)
您不需要表单来激活选择中的“更改”事件。只需在jQuery中选择并将“更改”事件绑定到它。
$(function() { $("select").change(function() { // Do something }); });