简体   繁体   English

如何通过ajax发送同一个选择框的多个值

[英]how to send multiple values of same select box by ajax

I have a select box with multiple select option.我有一个带有多个选择选项的select框。 I want to send selected values in an array through an AJAX request.我想通过 AJAX 请求发送数组中的选定值。 How can I select multiple values in the select tag and send all values in an array on click?如何在select标签中选择多个值并在单击时发送数组中的所有值?

<script type="text/javascript">
</script>

<select name="name[]" id="name[]">
  <option>--Select--</option>
  <?php $sql = mysql_query("select * from med_list order by medicine asc");
  while($sha=mysql_fetch_array($sql)) { ?>
    <option style="color:#007F55" value="<?php echo $sha['id']; ?>">
      <?php echo mysql_real_escape_string($sha['medicine']); ?>
    </option>
  <?php } ?>
</select>
$("#submit").click(function() {
  var bac = $("#bacteria").val();
  alert(bac);
});

Check this code检查此代码

<select id="data" name="data" class="data" multiple="multiple">
<option value="100">foo</option>
<option value="101">bar</option>
<option value="102">bat</option>
<option value="103">baz</option>
</select>

Jquery:查询:

   $(".data").val(["100", "101"]);

Firstly, add multiple attribute in select tag and remove array brackets in id attribute.首先,在 select 标签中添加多个属性并删除 id 属性中的数组括号。 Second thing, on submit button you've get the value of wrong select box id.第二件事,在提交按钮上,您获得了错误选择框 ID 的值。

Replace var bac = $("#bacteria").val();替换var bac = $("#bacteria").val(); to var bac = $("#name").val();var bac = $("#name").val();

<select name="name[]" id="name" multiple="multiple">
    <option value="">Select Any Value</option>
    <option value="name1">Name 1</option>
    <option value="name2">Name 2</option>
    <option value="name3">Name 3</option>
    <option value="name4">Name 4</option>
    <option value="name5">Name 5</option>
</select>
<button id="submit">Submit</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
$("#submit").click(function() {
  var bac = $("#name").val();
  alert(bac);
});
</script>

使用id="name"而不是id="name[]"

<select name="name[]" id="name">

The first is to know that you will sending an array of data, if you use " var bac = $("#bacteria").val();"首先是要知道你将发送一个数据数组,如果你使用“ var bac = $("#bacteria").val();” it will only take the first item and it will pass it.. To send multiple values of same select box by ajax, start by making an array then pass it This is how i did it and it worked它只会获取第一项并传递它.. 要通过 ajax 发送同一个选择框的多个值,首先创建一个数组然后传递它这就是我这样做的方式并且它起作用了

if( $('#bacteria :selected').length > 1){
     var bac = [];
     $('#bac :selected').each(function(i, selected) {
       bac[i] = $(selected).val();
     }); 
    } else {
       var bac = $("#bacteria").val();; 
     }

You can ignore the if statement depending on your php file您可以根据您的 php 文件忽略 if 语句

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM