下拉选择问题

时间:2015-03-22 17:18:44

标签: php jquery html

以下下拉列表中包含来自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;什么都没有出来,它只有在前面有空格的情况下才有效。我还检查了我的数据库,并且值中没有空格。

1 个答案:

答案 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>