2010-01-22 122 views
0

真正需要在这里发生的是..会话从下面列出的下拉列表中获取我的数据。它将把它带到进程页面,然后在进程页面上将其带回到此页面。然后,当它回到第一页时,下拉菜单将填充会话或同一个客户端,就像我离开该页面时一样,下拉菜单的更改也会生效。谁能帮我这个。谢谢现在,这将客户端返回到下拉菜单,但下拉菜单的onchange不起作用,这是我真正需要的。PHP下拉菜单和会话问题

session_start(); 


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


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


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


    $sel=($id==$current)?'SELECTED':''; 

    $options4.="<OPTION $sel VALUE=\"$value\">".$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> 

过程页头

session_start(); 
$_SESSION['ClientNamefour'] = $_POST['txtclientcode']; 

// Do the redirect 





// Do the redirect 
header("Location: test.php"); 
exit(); 
+1

你的问题到底是什么? – 2010-01-22 14:23:26

+0

只需要注意:您应该为您的

回答

1

我不知道您的问题或问题,但我只是猜测,它应该是

$_SESSION['ClientNamefour'] = $_POST['ClientNamefour']; 

,而不是

$_SESSION['ClientNamefour'] = $_POST['txtclientcode']; 

另外不要忘记关闭</option>标签到您的代码。

当然,您必须将表单数据发送给该进程的页面,但

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

貌似得到的数据发送回同一页面。

从不信任用户提交的数据。

编辑:

尝试:

onChange="Javascript:document.forms[0].submit()" 

onChange="Javascript:document.forms['form'].submit()" 

不过,这只是我发现使用谷歌。

+0

我已经将数据返回到下拉列表中,但是当它发生时,onchange事件不会自动进行,因为下拉列表不会更改。它只是选择最后一个客户端。 – Eric 2010-01-22 14:34:24

+0

我如何做到这一点onchange确实去? – Eric 2010-01-22 14:36:52

+0

@Eric:我更新了我的答案btw。 – 2010-01-23 16:40:48