下拉选择问题


Dropdown selection issue

下面的下拉列表中填充了来自sql数据库的数据:

<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上,这是一个空格问题。当我用"China"替换$userSelection时,数据会出来,但当我尝试时,"China"什么都没有出来,只有当它前面有空白时,它才起作用。我还检查了我的数据库,发现值中没有空白。

foreach($sql5->results()作为$sql5){?>

您正在尝试迭代$sql5->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>