以下下拉列表中包含来自sql database的数据:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<select name="Select" id="vals" onchange="this.form.submit()" class="btn btn-warning">
<option value="">-- Select Country --</option>
<?php
$user=new User();
$sql5=DB::getInstance()->get('country', array('user', '=', $user->data()->username));
if (!$sql5->count()) {
echo 'No data';
} else {
foreach ($sql5->results() as $sql5) { ?>
<option value="<?php echo $sql5->name;?>">
<?php echo $sql5->name;?></option>';
<?php }
} ?>
</select>
</form>
</div>
用户从下拉列表中进行选择,以便输出连接到所选数据的信息:
<? php
if (isset($_POST['Select']) && !empty($_POST['Select'])) {
$userSelection = $_POST['Select'];
$sql = DB::getInstance() - > get('country', array('country', '=', $userSelection));
if (!$sql - > count()) {
echo 'no data';
} else {
foreach($sql - > results() as $sql) {
echo 'data';
}
当我从下拉列表中单击某个选项时,没有任何内容出现。问题在于$ userSelection,这是一个空白问题。当我用&#39;替换$ userSelection时中国&#39;,数据出来但是当我尝试时,&#39;中国&#39;什么都没有出来,它只有在前面有空格的情况下才有效。我还检查了我的数据库,并且值中没有空格。
答案 0 :(得分:1)
foreach ($sql5->results() as $sql5) { ?>
您正在尝试迭代$ sql5-&gt; results()并使用与父项相同的变量名设置子项,从而替换父项。在另一个迭代中,你正在做同样的事情......尝试:
<select name="Select" id="vals" onchange="this.form.submit()" class="btn btn-warning">
<option value="">-- Select Country --</option>
<?php
$user=new User();
$sql5=DB::getInstance()->get('country', array('user', '=', $user->data()->username));
if (!$sql5->count()) {
echo '<option value="no-data">No data</option>';
} else {
foreach ($sql5->results() as $item) {
echo '<option value="'.$item->name.'">'.$item->name.'</option>';
}
}
?>
</select>