2015-07-19 20 views
-2

更新1:用戶輸入在頁面上正確輸入並提交時,故意不清楚。問題是當他們離開並重新訪問時,那裏的輸入消失了。如何防止textarea表單在提交,離開和重新進入頁面時清除回聲?

下面是HTML代碼:

   Subject1<br /><textarea name="subject1name" placeholder="Things about Subject1" id="subjects" rows="3" cols="48" maxlength="155"><?php echo $s1; ?></textarea><br /><br /> 
       Subject2<br /><textarea name="subject2name" placeholder="Things about Subject2" id="aboutYou" rows="3" cols="48" maxlength="155"><?php echo $s2; ?></textarea><br /><br /> 

下面是關於提交按鈕的PHP代碼:

if(isset($_POST['submit'])) { 
    $updateCD = "UPDATE users SET subject1name='$s1', subject2name='$s2' WHERE email='$_SESSION[email_login]'"; 
    $updateSQ = mysqli_query($con, $updateCD); 

    echo '<div id="confirmation">Profile updated!</div>'; 
} 
else{ 
} 

我目前遇到麻煩讓我的texarea箱子從在離開清除其回波輸出並重新進入該頁面。

進一步澄清:

有提示用戶在信息輸入個人資料頁。條目填寫完成後,用戶單擊一個按鈕,該按鈕將輸入的數據提交併存儲在數據庫中。用戶不會被導向其他任何地方,因此他們與編輯的個人資料保持同一頁面。我遇到的問題是,當他們離開配置文件頁面並重新訪問它時,即使php塊回顯了應該顯示其信息的變量,他們輸入的條目也被清除,並留下佔位符文本以重新提示其信息再訪。只有當用戶離開配置文件頁面並重新訪問時纔會發生這種情況。

如何確保在用戶離開並重新訪問該頁面時顯示用戶信息?謝謝。

+0

你可以發佈你的代碼並更新你的問題 –

+0

@MeeneshJain當然,做到了。 – CodeMerchant

回答

1

如果您粘貼當前代碼,我可能會更好地幫助您。我可以隱約回答,希望它能幫助你弄清楚。

您可以將任何值送入textarea。執行數據庫調用以及用戶可能輸入的任何現有值的$ _REQUEST檢查。

<?php 
$textareaValue = do_database_call(); 
if ($textareaValue === null && isset($_REQUEST['mytextarea'])) { 
    $textareaValue = $_REQUEST['mytextarea']; 
} 
?> 
<textarea name="mytextarea"><?= $textareaValue ?></textarea> 

這將顯示用戶在無效提交或他們當前存儲在數據庫中的內容。

UPDATE:以反映您所提供的代碼。此外,這裏的代碼不安全,因爲您很容易受到SQL注入的影響。我會建議使用這些表單的Web框架。這裏是Symfony的表單組件。 http://symfony.com/doc/current/book/forms.html

<?php 
function form_value($con, $name) { 
    $val = mysqli_query($con, "SELECT $name FROM...."); // TODO: finish this code 
    if ($val === null && isset($_REQUEST[$name])) { 
     $val = $_REQUEST[$name]; 
    } 
    return $val; 
} 
?> 
<textarea name="subject1name"><?= form_value($con, 'subject1name') ?></textarea> 

要清楚,我絕不會使用上面的代碼。這主要是爲了證明當用戶重新訪問時,您需要運行SELECT查詢以從數據庫中獲取其值。

+0

那麼我需要爲每個textarea表單創建if語句嗎?我有一些,只是我已經在更新的OP中的樣本。 – CodeMerchant

+0

你可以編寫一個函數,它包含textarea的名字,這個名字可以在數據庫中查看,也可以在超全局的請求中查找。大多數Web框架都爲您提供此功能。 –

+0

謝謝你的補充;我一定會檢查出來。因爲我對編碼不熟悉,所以我首先只想在代碼加強之前讓代碼工作。那麼我應該有一個單獨的php塊來選擇記錄中的值,對吧?因此,如果我想請求多個信息列,我是否可以通過在$ name之後添加更多變量來擴展該信息? – CodeMerchant

相關問題