Jquery selectBox插件 - 将onChange上的多字节值传递给ajax

时间:2014-01-15 11:35:25

标签: jquery html ajax drop-down-menu

有人可以用jquery selectbox插件帮助我吗? http://www.bulgaria-web-developers.com/projects/javascript/selectbox/

我通过Ajax从选择框onChange发送数据,一切选择框都能正常工作。但我需要3个选择框。并且不知道从另一个选择框传递值的热点。

    <form id="filter">

  <span>Sort:</span>
  <div class="col-xs-3">
     <select id="sorting" name="sort">
      <option value="asc">Asc</option>
      <option value="desc">Desc</option>
     </select> 
  </div>

  <span>by:</span>
  <div class="col-xs-3">
     <select id="ordering" name="order_by">
      <option value="price">Price</option>
      <option value="name">Name</option>
      <option value="date">Date</option>
     </select> 
  </div>

  <input type="hidden" value="1" name="category_id">
</form>

<form id="filter"> <span>Sort:</span> <div class="col-xs-3"> <select id="sorting" name="sort"> <option value="asc">Asc</option> <option value="desc">Desc</option> </select> </div> <span>by:</span> <div class="col-xs-3"> <select id="ordering" name="order_by"> <option value="price">Price</option> <option value="name">Name</option> <option value="date">Date</option> </select> </div> <input type="hidden" value="1" name="category_id"> </form>


$("#filter select").selectbox({

onChange: function (val, inst) {
$.ajax({
        type: "POST",
        data: {sort: val},
        url: "./filter.php",
        success: function (data) {

                     push data to content

        }
    });
},

正如你所看到的,我只有一个变量“val”,我不知道从第二和第三个选择框中获取值。 我将在一个ajax调用中需要它。

需要像:这样的东西 data:{sort:val,order:val2,category:category_id},

此外,是否可以通过输入[隐藏]字段传递一些自定义变量?那也很棒。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的代码是有效的,selectbox插件中存在的问题是尝试在某个时刻调用jQuery live()方法,如果您使用的是1.9之后的jQuery版本,则删除该方法,使用1.7插件附带的.2为我解决了这个问题,但这也意味着selectbox插件已经过时了。

  

此外,是否可以通过输入[隐藏]字段传递一些自定义变量?那也很棒。

这个问题需要在你想要的方式和时间方面更具体,但这绝对是可能的。

已更新,以回答以下评论:

$.ajax({
    type: "POST",
    data: {
        sort: $("#sorting").val(),
        order: $("#ordering").val()
    },
    url: "./filter.php",
    success: function (data) {}
});