PHP MySQL 表单选择返回


PHP MySQL form selection return

我正在努力使这段代码工作,我想要从中显示要在选择表单中选择的项目(已经在数据库中)。

<label>Server Ports:</label>
<select multiple class="form-control" name="select[]">
<?php 
// Get Server Information
    $query = "SELECT port_no FROM _servers WHERE (server_id = '$servid') ";
    $result = mysql_query($query) or die ('Unable to run query:'.mysql_error());
    while($row = mysql_fetch_assoc($result)){
        $no = $row['port_no'];
    }                               
    $query = "SELECT id, name, port_no, unique_id FROM ports ORDER BY name ASC";
    $result = mysql_query($query) or die ('Unable to run query:'.mysql_error());
    while($row = mysql_fetch_assoc($result))
    {
        $port_no = $row['port_no'];
        $port_name = $row['name'];
        $p_unique = $row['unique_id'];
    }
?>
<option value="<?php echo $p_unique;?>"
<?php
    if ($p_unique == $no) {
        $check = 'selected';
    } else {
        $check = '';
    }
    echo $check;
?>
>
<?php
    echo $row['name'];
?>
(
<?php
    echo $row['port_no'];
?>
)</option>
<?php
    }
?>
</select>

你确定你的测试必须是if ($p_unique == $no) {}而不是if ($port_no == $no) {}吗?

如果是,请尝试检查变量值:

做一个$no var_dump()

var_dump($no);

在你的 while() 循环中,你还可以检查 $p_unique 的值,$no像这样:

var_dump($p_unique.'/'.$no);

另外,这是测试选定:

<option value="<?php echo $p_unique;?>" <?php if ($p_unique == $no) echo 'selected="selected"'; ?>><?php echo $row['name'] ;?> (<?php echo $row['port_no'] ;?>)</option>