![](/img/trans.png)
[英]How to get the selected values of multiple select box in a text field in. I am using select js library
[英]I can't get multiple selected values of select box in php
所以,我有一個 HTML/PHP 表單,它有一個 select 列表框,您可以從中 select 多個值,因為它的多個屬性設置為多個。 考慮表單方法是“POST”。 但是當我單擊提交時,列表框只保存一個值(具體是最后選擇的值)。 我不知道為什么。
這是我的代碼的一部分:
<?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>
該代碼適合我:
/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)
在 PHP 中有一些特殊配置嗎?
我的測試:
<?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>
編輯:
當您在 PHP 中接收數組數據時,在您的情況下:
<select name="classes[]" >
PHP var 是$_POST['classes']
而不是$_POST['classes[]']
並且它是一個數組,如果要將其用作字符串,則必須使用implode
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.