简体   繁体   English

我无法在 php 中获得 select 框的多个选定值

[英]I can't get multiple selected values of select box in php

So, I have an HTML/PHP form that has a select list box from which you can select multiple values because its multiple properties are set to multiple.所以,我有一个 HTML/PHP 表单,它有一个 select 列表框,您可以从中 select 多个值,因为它的多个属性设置为多个。 Consider the form method is 'POST'.考虑表单方法是“POST”。 But the list box is saving only one value when I click on SUBMIT (to be specific the last value chosen).但是当我单击提交时,列表框只保存一个值(具体是最后选择的值)。 I don't know why.我不知道为什么。

This is part of my code:这是我的代码的一部分:


    <?php
    if(isset($_POST['submitSave'])) {
    // Disable errors due to empty xml files
        error_reporting(E_ALL & ~E_WARNING);

        $domDoc = new DOMDocument('1.0', 'UTF-8');
        $domDoc->preserveWhiteSpace = false;
        $domDoc->formatOutput = true;
        $domDoc->encoding = 'UTF-8';
        $domDoc->load('./data/expression.xml');
        $xpath = new DOMXpath($domDoc);


        if($domDoc->getElementsByTagName('expression')->length>0){
            // If we already have expression tag defined
            $expression = $domDoc->getElementsByTagName('expression')[0];
        }else{
            // If we don't have any expression tag, i.e. file is empty
            $expression = $domDoc->createElement('expression');
        }

    $vocabulario = $domDoc->createElement('vocabulario');
    $vocabulario->setAttribute('word', $_POST['word']);
    $classe = $domDoc->createElement('classe', $_POST['classe']);

    $domDoc->appendChild($expression);
    $expression->appendChild($vocabulario);
    $vocabulario->appendChild($classe);

    file_put_contents('./data/expression.xml', $domDoc->saveXML());
    header('location:index.php');

}
?>

<form method="post">
<div class="col-75">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
  <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.css" rel="stylesheet" />
  <select name="classe[]" multiple="multiple">
    <option value="| adjective |">adjective</option>
    <option value="| adverb |">adverb</option>
    <option value="| noun |">noun</option>
    <option value="| verb |">verb</option>
  </select>
  <script type="text/javascript">
    var s2 = $("#classe").select2({
      placeholder: "Select",
      tags: true
    });
  </script>
</div>

<div class="row">
  <td><input type="submit" value="Save" name="submitSave"></td>
</div>

the code work just right for me:该代码适合我:

/home/vagrant/foo/index.php:3:
array (size=2)
  'classe' => 
    array (size=2)
      0 => string '| adjective |' (length=13)
      1 => string '| adverb |' (length=10)
  'submitSave' => string 'Save' (length=4)

have some special config in PHP?在 PHP 中有一些特殊配置吗?

my test:我的测试:

<?php

var_dump($_POST);

?>
<form method="POST">
     <div class="col-75">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.css" rel="stylesheet"/>
    <select id="classe" name="classe[]" multiple name="event_type[]" class="form-control" required>
  <option value="| adjective |">adjective</option>
  <option value="| adverb |">adverb</option>
  <option value="| noun |">noun</option>
  <option value="| verb |">verb</option>
</select>
<script type="text/javascript">
        var s2 = $("#classe").select2({
    placeholder: "Select",
    tags: true
});


    </script>
</div>
<div class="row">

            <td><input type="submit" value="Save" name="submitSave"></td>
    </div>  
</form>

edit:编辑:

when yo receive array data in PHP, in your case:当您在 PHP 中接收数组数据时,在您的情况下:

<select name="classes[]" >

the PHP var is $_POST['classes'] not $_POST['classes[]'] and it is an array, if you want to use it as an string you have to use implode PHP var 是$_POST['classes']而不是$_POST['classes[]']并且它是一个数组,如果要将其用作字符串,则必须使用implode

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

相关问题 如何在文本字段中获取多个选择框的选定值。我正在使用选择 js 库 - How to get the selected values of multiple select box in a text field in. I am using select js library 如何获取多个 select 框的所有选定值? - How to get all selected values of a multiple select box? 无法从多个 select 列表中获取选定值以插入到其他 select 列表中 - Can't get selected values from a multiple select list to insert into other select list 多个选择框中的值在选中后消失 - Values in multiple select box disappear when selected 在选择框中获取多个选定选项的列表 - Get List of Multiple Selected Options in Select Box 如何从jsp中的选择框(选中和未选中)获取所有值 - How to get all values from a select box(selected & not selected) in jsp 具有选定值的Django下拉[onChange]框,但无法获取选定值 - Django dropdown [onChange] box with selected values but can't get the selected value 如何获取选择框中所有值的列表? - How can I get a list of all values in select box? jQuery / Grails将多个选项/值标记为在多个选择框中选择 - JQuery/Grails marking multiple options/values as selected in multiple select box 需要在多个下拉框中选择选定的下拉框值 - Selected Dropdown Box values needs to get selected in multiple dropdown boxes
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM