获取select标记中文本的值


Get the value of a text in select tag

从select标记获取用户选择的文本时遇到问题。我看过其他类似的问题,但都没有真正的帮助。

<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="country"><?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更改为特定的国家/地区名称时,会显示该国家/地区的数据。我认为问题可能是select标记中的选项值,但我不确定。

所有请求的值都相同。更新到

<option value="<?php echo $sql5->country ?>"><?php echo $sql5->name;?></option>

这是假设标识列是country,因为这是select查询中的where子句。