我创建了一个表单,用户可以从下拉字段中选择不同的选项。所选选项应保存在另一个表的数据库中。所以这就是我所做的:
从数据库获取下拉列表中的数据:
include 'inc/database.php';
// Get all Schulen from Database
$get_schulname3 = "SELECT schulname FROM schule";
$result_get_schulname3 = mysqli_query($connect, $get_schulname3);
在网站上显示下拉字段:
<div class="form-group">
<label class="control-label col-md-3 col-sm-3 col-xs-12">Schule:</label>
<div class="col-md-9 col-sm-9 col-xs-12">
<?php while ($get_schulname3 = mysqli_fetch_array($result_get_schulname3, MYSQLI_BOTH)) {
echo "<select name='schule-lehrer' class='form-control'>Dropdown</option>";
while($r3 = mysqli_fetch_array($result_get_schulname3, MYSQLI_BOTH)){
echo "<option value=" . $r3['schulname'] . ">" .$r3['schulname'] . "</option>";
}
echo "</select>";
} ?><br /><br />
</div>
</div>
使用此代码显示所有内容,一切正常。现在,如果用户从下拉列表中选择了某些内容,则并非所有数据都保存在数据库中。
以下是如何在我的数据库中保存数据:
$schule_lehrer = mysqli_real_escape_string ($connect, $_POST['schule-lehrer']);
$query = "INSERT INTO teacher (schule) VALUES ('schule_lehrer')";
例如,我的下拉字段中包含以下条目:
SRG Traumschule, AHS Bergschule, AHS Testschule,
如果用户选择“SRG Traumschule”并提交表单,在我的数据库中为用户我只看到“SRG”而不是“SRG Traumschule”或者如果用户选择“AHS Testschule”我只看到里面的数据库“测试”。 见这里:http://awesomescreenshot.com/0c8572u7c8
有人可以帮助我并告诉我为什么会出现这个问题吗?我做错了什么?
答案 0 :(得分:1)
这是因为您没有附上option
元素value
属性
echo "<option value=" . $r3['schulname'] . ">" .$r3['schulname'] . "</option>";
^^ ^^
需要
echo "<option value='" . $r3['schulname'] . "'>" .$r3['schulname'] . "</option>";
^^ ^^
除非您的值中没有space