Javascript 您可以只返回数组对象。Array.join将其转换为字符串。在我的示例中,只需返回selectedList来代替警报。当我按照示例中的方式显示selectedList时,不使用AJAX,它会显示一个csv。但是当我通过ajax发送相同的selectedLi

Javascript 您可以只返回数组对象。Array.join将其转换为字符串。在我的示例中,只需返回selectedList来代替警报。当我按照示例中的方式显示selectedList时,不使用AJAX,它会显示一个csv。但是当我通过ajax发送相同的selectedLi,javascript,html,multiple-select,Javascript,Html,Multiple Select,您可以只返回数组对象。Array.join将其转换为字符串。在我的示例中,只需返回selectedList来代替警报。当我按照示例中的方式显示selectedList时,不使用AJAX,它会显示一个csv。但是当我通过ajax发送相同的selectedList时,响应文本为空。此外,php将selectedList识别为数组,因为我在代码中使用的foreach循环没有任何错误。当我发送警报时,php不会将其作为数组。很抱歉。。我的错。。。php无法将selectedList识别为数组。我必须分解


您可以只返回数组对象。Array.join将其转换为字符串。在我的示例中,只需返回selectedList来代替警报。当我按照示例中的方式显示selectedList时,不使用AJAX,它会显示一个csv。但是当我通过ajax发送相同的selectedList时,响应文本为空。此外,php将selectedList识别为数组,因为我在代码中使用的foreach循环没有任何错误。当我发送警报时,php不会将其作为数组。很抱歉。。我的错。。。php无法将selectedList识别为数组。我必须分解它以生成一个仍然为空的数组。如果你想在邮件背面将其传递到服务器端,你只需从控件上的名称读入即可。我不是100%确定,但我不知道您的控件名中是否可以有[]。我相信通过URL编码,[]将被替换,并可能更改querystring或表单集合中控件数据的名称。我不写PHP,所以我不了解PHP。如果您只是在验证,那么您可以检查阵列的长度,并根据长度执行任务。您好,感谢您的回复,我确实成功地显示了所选选项的csv(在您的代码帮助下)。现在我如何检查它在加入后是否作为数组运行??是否有任何方法显示它,我想这样做,因为我正在将最终结果以AJAX请求的形式传递给php,但响应为空。因此,您可以不返回Array.join,而只返回Array对象。Array.join将其转换为字符串。在我的示例中,只需返回selectedList来代替警报。当我按照示例中的方式显示selectedList时,不使用AJAX,它会显示一个csv。但是当我通过ajax发送相同的selectedList时,响应文本为空。此外,php将selectedList识别为数组,因为我在代码中使用的foreach循环没有任何错误。当我发送警报时,php不会将其作为数组。很抱歉。。我的错。。。php无法将selectedList识别为数组。我必须分解它以生成一个仍然为空的数组。如果你想在邮件背面将其传递到服务器端,你只需从控件上的名称读入即可。我不是100%确定,但我不知道您的控件名中是否可以有[]。我相信通过URL编码,[]将被替换,并可能更改querystring或表单集合中控件数据的名称。我不写PHP,所以我不了解PHP。如果只是验证,则可以检查数组的长度,并根据长度执行任务。
<form onsubmit="return false;" id="multisel">
  <select name="a[]" id="a" multiple style="width:350px;" tabindex="4">
    <option value="Pedro">1</option>
    <option value="Alexis">2</option>
    <option value="Messi">3</option>
    <option value="Villa">4</option>
    <option value="Andres">5</option>
    <option value="Sergio">6</option>
    <option value="Xavi">7</option>
  </select>

  <button id="btn1" onclick="ajaxmultiselect()" type="submit" class="btn btn-primary">Save changes</button>

  <p id="status"></p>
</form>
<script>    
function ajaxmultiselect(){
  var input  = [];
  input = document.getElementById("a").value;
  var status = _("status");
  if(input == ""){
    status.innerHTML = "Fill out all of the form data";
  }else {
    status.innerHTML = input;
  }
}
</script>
document.getElementById('a').options //All Options
function ajaxmultiselect(){
  var input  = [];
  var select = document.forms[0].a;
  var status = _("status");
  var options = select.selectedOptions;
  if(select.selectedIndex == -1){
    // no selection
    status.innerHTML = "Fill out all of the form data";
  }else {
    for (var i = 0; i < options.length)
      input.push(options[i].value);
    status.innerHTML = input.join(", ");
  }
}
function GetSelectedItems() {
            var select = document.forms[0].a;
            var selectedList = [];

            for (var i = 0; i < select.options.length; i++) {
                if (select.options[i].selected) {
                    selectedList.push(select.options[i].value);
                }
            }

            alert(Array.join(selectedList, ","));
        }
function getSelectedOptions(element) {
    // validate element
    if(!element || !element.options)
        return []; //or null?

    // return HTML5 implementation of selectedOptions instead.
    if (element.selectedOptions)
        return element.selectedOptions;

    // you are here because your browser doesn't have the HTML5 selectedOptions
    var opts = element.options;
    var selectedOptions = [];
    for(var i = 0; i < opts.length; i++) {
         if(opts[i].selected) {
             selectedOptions.push(opts[i]);
         }
    }
    return selectedOptions;
}
input = getSelectedOptions(document.getElementById("a"));