PHP下拉菜单返回上一个选择

时间:2010-01-19 20:17:08

标签: php

好的,这是我原始代码的一小部分。我有两个页面,一个页面充满了表单和框,然后是另一个页面,将信息放入我的数据库。

Oasis.php页面 这里右边是更改客户端名称和代码的代码。在这整个页面上。关于改变事件。

$sql = "SELECT * FROM client_lookup ORDER BY Client_Full_Name ASC"; 
$result = mysql_db_query ($dbName, $sql, $dbLink); 

$options4=""; 

while ($row = mysql_fetch_array($result)) { 

    $id=$row["Client_Code"]; 
    $thing=$row["Client_Full_Name"]; 
    $options4.="<OPTION VALUE=\"$id, $thing\">".$thing; 
} 
?>
<FORM name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<SELECT NAME="ClientNamefour" OnChange="this.form.submit()">
    <OPTION VALUE=0>Client
    <?php echo $options4?> 

  </SELECT>
</FORM>

一旦提交了Oasis.php页面下面的表单,它就会进入流程页面并将信息放入我的数据库中。一旦完成,我有一个标题,让我回到这个页面。但默认情况下,始终返回客户端。

尝试从此下拉列表返回先前选择的客户端时,我使用了此代码。要自动选择上次选择的客户端。

$sql = "SELECT * FROM client_lookup ORDER BY Client_Full_Name ASC"; 
$result = mysql_db_query ($dbName, $sql, $dbLink); 


session_start();

$current = isset($_SESSION['ClientNamefour']) ? $_SESSION['ClientNamefour'] : 0;

$options4=""; 

while ($row = mysql_fetch_array($result)) { 


    $id = $row["Client_Code"]; 
    $value = $row["Client_Full_Name"];
        $key = "$id, $value";


    $selected = ($id == @$_SESSION['ClientNamefour']) ? ' selected' : '';
    $options4.="<option value=\"{$key}\"{$selected}>{$value}";
} 


?>

<FORM name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">

<SELECT NAME="ClientNamefour" OnChange="this.form.submit()">

    <OPTION VALUE=0>Client
    <?php echo $options4?> 

  </SELECT>
</FORM>

这可行,但onchange事件不起作用!所以它不发布自己。 on change事件是关键或我的整个页面没有填充信息。

1 个答案:

答案 0 :(得分:0)

您阅读$_SESSION['ClientNamefour']但从不写信给我......我认为您将$_SESSION$_POST混为一谈。如果您使用$_POST,则$_POST['ClientNamefour']将是<select>的值,因为<select>的名称属性为'ClientNamefour'。

另一方面,你永远不会操纵变量$current而且 - 这可能是我不熟悉的PHP语法 - 当你操纵$_SESSION['ClientNamefour']之前就有一个商业角色@ $ ...