2017-09-23 25 views
0

在我的list.php頁面上,用戶可以從下拉列表中選擇一個國家以顯示所選SQL Server的數據。在此選擇上,用戶可以選擇更新/編輯edit.php頁面上的值。當用戶在edit.php頁面上提交更改時,它們被重定向到save.php頁面,然後返回到初始list.php頁面。我想知道是否可以使用SESSION變量來存儲最初的國家/地區選擇,以便用戶在重定向到list.php時獲得相同的選擇。我試過使用session_start();,但無法使其正常工作。在不同頁面的SESSION變量中下拉選定的值不會持續

EDITED

這是我的代碼片段:

list.php

<?php session_start(); ?> 

形式:

<form name="frmname" id="frmid" action="list.php" method="POST" > 
<h4>From: <input type="text" size="6" name="start_date" pattern="[0-9/]+" 
placeholder=" 00/00/0000" /> 
To: <input type="text" size="6" name="end_date" pattern="[0-9/]+" 
placeholder=" 00/00/0000" /> 
<select name="RegioSelect" onchange="this.form.submit();" ><option><?php echo $_SESSION['RegioSelect']; ?></option> 

通過下拉填充

$query1 = "SELECT DISTINCT CountryRegionName FROM tKein23 ORDER BY CountryRegionName"; 
$stmt1 = $conn->query($query1); 
while ($data = $stmt1->fetch(PDO::FETCH_ASSOC)){ 
    echo '<option value="'.$data['CountryRegionName'].'">'; 
    echo $data['CountryRegionName']; 
    echo "</option>"; 
} 

然後我試圖SESSION_START()

<h4><input type="submit" value="Show" name="Selection" /> 
</select> 
</form> 

<?php 

    if(isset($_POST["RegioSelect"])){ 
     $_SESSION['RegioSelect'] = $_POST["RegioSelect"]; 
    } 

現在,在其他頁面上,我得到了$_SESSION['RegioSelect']變量。在list.php上,我得到下拉列表中的變量,但沒有提交。

+1

'在session_start()'有被稱爲** **前的任何輸出到瀏覽器 –

+0

我的推杆在頂部的session_start()代碼的頁面,在html標籤之前,但它似乎工作時,我重定向到list.php不要選擇國家'<?php session_start(); if(isset($ _ POST [「RegioSelect」])){ \t $ _SESSION ['RegioSelect'] = $ _POST [「RegioSelect」]; } ?>' –

+0

'$ _SESSION ['RegioSelect'] = $ _POST [「RegioSelect」];'在'list.php'上?否則'if()'不會被執行 –

回答

1

session_start()必須先出現在任何其他輸出之前。不僅在你的php腳本的html之前,而且在任何瀏覽器輸出之前。

PHP Documentation

要使用基於cookie的會話,在session_start()必須outputing什麼瀏覽器之前調用。

<?php session_start(); ?> 

<html> 
    <body> 
     ... 
     ... 
     <h4><input type="submit" value="Show" name="Selection" /> 
     </select> 
     </form> 

<?php 

    if (isset($_POST["RegioSelect"])) 
     $_SESSION['RegioSelect'] = $_POST["RegioSelect"]; 
1

如果窗體是在同一頁上,請務必將

if (isset($_POST["RegioSelect"])) 
    $_SESSION['RegioSelect'] = $_POST["RegioSelect"]; 

移動到頂部 -的<html>

前右下面session_start()否則你必須先重新加載頁面 - 這可能不是你想要的

從那裏,你也可以做到通過header()重定向到其他頁面

+0

從save.php已經做了一個標題()重定向回到list.php,那裏是我需要從提交以獲得選擇回來。嘗試JavaScript,但onLoadSubmit()函數進入循環,所以實際上我需要這個函數只運行一次,但我沒有得到它的工作。 –

相關問題