2010-01-22 71 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