从几个下拉列表中通过jQuery ajax传递数据

时间:2012-03-18 17:55:35

标签: jquery loops

每个人:我需要将20个下拉列表中的数据发送到PHP文件。如何对它们进行循环以查看所有值的值?谢谢你。

P.S。:在PHP中,我知道如何通过它们来获取数据......

2 个答案:

答案 0 :(得分:1)

让我们将此HTML作为样本 -

<div id="vanyov">
  <select>
    <option value="Beer"></option>
    <option value="Wine"></option>
    <option value="Water"></option>
    ...
  </select>
  <select>
    <option value="Steak"></option>
    <option value="Pizza"></option>
    ...
  </select>
  ...
</div>
<!-- I hope I put the right choices in here.
everyone cool with Beer and Pizza right? ;) -->

您可以使用jQuery返回所需的所有select元素,然后解析所有这些元素,将它们添加到JSON对象中。

var valuesJSON = {};
$.each($("#vanyov select"),function(index,elem){
  valuesJSON[index] = $(elem).val();
});

这会在<select>元素中添加所有#vanyov元素的值。

但是这里发生了什么?让我们来看看 -

  • var valuesJSON = {} - 这是一些创建名为valuesJSON的新空对象的简写代码。
  • $.each - 这是一个jQuery函数,它会遍历你给它的所有元素。数组和对象,尤其是jQuery selectors返回的元素组。还有一个回调函数,它传递$.each找到的每个项目。
  • $("#vanyov select") - 这里我们告诉jQuery为我们提供<select>元素后代的所有#vanyov元素。
  • valuesJSON[index] - 这是我们向JSON添加新项目的地方。我们使用index参数,因为它们就在那里!简单! $.each函数提供了它们。
  • $(elem).val() - 我们用elem包装$()参数将其转换为jQuery对象,然后我们使用val()函数提取<option>的值已选中的下拉列表中的1}}元素。

然后通过Ajax调用发送您的订单 -

$.post('/ajax/lyubomir',valuesJSON,function(response){
  // Return values here
},"json");

我希望他们很快就会来 - 在那之后,我正在挨饿......

答案 1 :(得分:1)

如果您需要创建一个值数组,那么一定要检查serializeArray方法。你会在同一页面上找到一个很好的usage example,你可以向下滚动一下。