2013-08-17 39 views
0

我在保存推送提交後的文本字段中的文本時出現問題。我用這:提交後在文本字段中保留文本

<input name="date" type="text" id="date" <?php if(isset($_POST['date'])){echo 'value="'.$_POST['date'].'"';} ?>/> 

我也有這個成功的提交,以便它重新加載表,但也去除了上面什麼,因爲它是令人耳目一新。

echo "Succesfully added transaction. Updating table..."; 
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">"; 

我的整個代碼=

<?php 

        // if ('POST' === $_SERVER['REQUEST_METHOD']) 
        if (isset($_POST['submit2'])) 

{ 
$con = mysql_connect("xx","xx_xx","xx"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("xx_xx", $con); 


$date = $_POST['date']; 

$_SESSION['date'] = $_POST; 

//Writes the to the server 

$sql = mysql_query("INSERT INTO `reservation__date` (`reservation_id`, `reservation_date`) 
VALUES 
('000', '$date')") or die(mysql_error()); 
$query = mysql_query($sql); 
if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 

$_SESSION['DATE'] = $_REQUEST['date']; 
echo "Succesfully added transaction. Updating table..."; 
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">"; 
mysql_close($con); 
} 
} 

?> 

回答

0

如果按照PRG原則(POST重定向消息GET),你需要跟蹤會話POST數據。

我假設你做這樣的事情後,提交:

if (POST is fine) { 

    do something; 
    redirect; 

} else { 

    re-render page and show feedback 

} 

由於服務器將放棄對重定向任何POST數據,你需要跟蹤POST數據在每個提交和重新填充POST數據頁面加載(GET)。

$_SESSION['user_POST'] = $_POST; 

if (POST is fine) ... 

在你的頁面包含表單提交:

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

忽略語法,我沒有把PHP那麼多。

+0

從來沒有聽說過它,介意解釋我如何做到這一點,如果你有時間嗎? –

+0

我編輯了我的答案。你到底懂不懂呢? – Alex

0

這是你的要求

<?php 
session_start(); 

if(isset($_REQUEST['date'])){ 

$_SESSION['date'] = $_REQUEST['date']; 
echo "Succesfully added transaction. Updating table..."; 
echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">"; 
} 
?> 

<form method="post"> 
<input name="date" type="text" id="date" value="<?php echo $_SESSION['date'];?>" /> 
<input type="submit" name="submit" /> 
</form> 
+0

您在提交頁面後正在使用meta HTTP-EQUIV =「refresh」。該頁面將刷新,所以如果你想在提交後得到文本字段,你可以使用$ _SESSION或$ _COOKIES – Chinmay235

+0

我添加了我的完整的PHP代碼,你可以看看嗎? –

+0

我編輯了我的代碼,請複製完整代碼並在本地系統中檢查它。讓我知道工作與否。謝謝 – Chinmay235

0

用於測試

<?php echo $_POST['date']; ?> 

嘗試設置到等於爲true,如果上面是正確的

<input name="date" type="text" id="date" <?php if(isset($_POST['date']) === true){echo 'value="'.$_POST['date'].'"';} ?>/> 
0
  1. 如果您正在使用會話變量..使用session_start();在你頁面頂部..

  2. 檢查,如果你有方法=「POST」的形式,因爲默認的GET ..

  3. 檢查天氣,你有正確的行動領域的形式如<form action="abc.php">

  4. 如果要將文本置於值中,最好檢查value屬性中的條件並回顯該值。因爲即使你沒有在HTML插入標籤中寫入值,它也可以作爲value=""。這會在稍後創建一個模糊的條件。

這樣做的更好

<form action="abc.php" method="post" > 

<input name="date" type="text" id="date" value="<?php if(isset($_POST['date'])){echo $_POST['date'];} ?>" /> 
....................... 
</form 

和現在abc.php

<?php 

session_start(); // as you are using session variables.. 

if (isset($_POST['submit2'])) 

{ 
$con = mysql_connect("xx","xx_xx","xx"); 
if (!$con) 
{ 
     die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("xx_xx", $con); 


$date = $_POST['date']; 

$_SESSION['date'] = $_POST['date']; // POST is an array carrying many elements so be specific which element you want. inthis case it is $_POST['date']; 

//Writes the to the server 

$sql = mysql_query("INSERT INTO `reservation__date` (`reservation_id`, `reservation_date`) VALUES ('000', '$date')") or die(mysql_error()); 
$query = mysql_query($sql); 

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 

$_SESSION['DATE'] = $_REQUEST['date']; 

echo "Succesfully added transaction. Updating table..."; 

echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"6\">"; 

mysql_close($con); 
} 
} 

?> 

希望這將幫助你...

相關問題