记住下拉项 OR select if GET

Remember dropdown item OR select if GET

我目前有这个代码来记住 post 上的最后一个 selected 项目。

 <select tabindex="1" name="system_customer">
        <option value="Choose">- Choose a Customer -</option>
        <?PHP while ($row = mysql_fetch_array($result_get_users))
         {
        echo "<option value='".$row['id']."'"; 
        echo $system_customer == $row['id'] ? 'selected="selected"' : ''; 
        echo ">".$row['firstname']." ".$row['lastname']."</option>";
        } ?>>
    </select>

加载时(提交前)列表默认为 "Choose"。我想做的是,如果 URL 有 "userid=1" 到 select 用户 1,或者如果它是 "userid=2" 那么 select 用户 2,但是保持记住最后一个 selected.

的代码

谢谢。

PS - 由于我正在为其编写模块的软件,无法使用 mysqli 或 PDO。它是硬编码和加密的。

您可以使用会话或cookie 对于 exp :

<?PHP 
Session_start();
if ( isset ( $_POST['system_customer'] ) ) { 
$_SESSION['SELECTED_USER_ID'] = $_POST['system_customer']; 
?>

并且您必须在下拉列表中进行一些更改

<select tabindex="1" name="system_customer">
<option value="Choose">- Choose a Customer -</option>
<?PHP while ($row = mysql_fetch_array($result_get_users)) {
echo "<option value='".$row['id']."'"; 
echo $_SESSION['SELECTED_USER_ID'] == $row['id'] ? 'selected="selected"' : ''; 
echo ">".$row['firstname']." ".$row['lastname']."</option>";
}
 ?>>
</select>

在您的 select 表单中,您必须检查会话 ID 是否等于行,然后为该选项添加 selected 属性。 但如果你想长时间保存细节,最好使用 cookie 或数据库,在其他情况下你不能这样做。

将此添加到您的代码上方 -

$system_customer = "";
if (!empty($_GET['userid'])) {
    $system_customer = $_GET['userid'];
}

然后 -

<select tabindex="1" name="system_customer">
    <option value="Choose">- Choose a Customer -</option>
    <?PHP 
    while ($row = mysql_fetch_array($result_get_users)) {
       echo "<option value='".$row['id']."'"; 
       echo $system_customer == $row['id'] ? 'selected' : ''; 
       echo ">".$row['firstname']." ".$row['lastname']."</option>";
    } 
    ?>
</select>