2009-06-16 46 views
0

我寫的編譯信息到數據庫的簡單的報名表,和我有我的必填字段麻煩......將提交的表單信息傳遞迴輸入字段?

我使用的一種形式,如果用戶忽略處理通過郵寄方式將數據填寫必填字段我想將他/她的前一個字段輸入到原始表單中。

如何將信息傳遞迴輸入標籤?有沒有一個簡單的方法來做到這一點沒有任何瘋狂的腳本?我開始與會話,但我意識到我不知道如何將會話中存儲的信息放回到輸入字段,因此用戶不必重新鍵入他們的所有信息......還有一個cookie會更好地爲這個會話?

謝謝你們,

亞瑟

+0

什麼語言你在編碼?我問問有很多方法可以實現這一點,但語言細節可能會有所幫助 – 2009-06-16 16:20:16

回答

1

不知道這是最好的方式,但你可以重定向到一個「刷新」頁面,並使用從POST值或GET來重新輸入現有的字段。所以首先驗證,所需的字段和缺少的字段重定向到此頁面。然後,POST或GET將具有用戶填寫的所有值(並且缺少的必填字段將已經爲空),因此您只需循環並加載提供的信息即可。此外,如果他們提供了不正確的信息,您可以手動清除它,這也將允許您標記缺少的必填字段。

另一個選擇是把你的驗證在JS中,所以你提交之前知道數據是好的。但是,我不確定是否存在安全問題。

3

當您發佈表單時,所有這些變量都將被提交到名爲$ _POST ['input_name']的全局數組中,並且可以在發佈到的頁面上使用。很多時候我喜歡做的事情只是讓這些輸入字段的值與發佈的值相同。

例如讓我們說我們有一個所需的用戶名字段,但表單沒有驗證出於某種原因並回到自己;我們不想讓他們不得不再次輸入:

<input type="text" name="username" value="<?php print $_POST['username']; ?>" /> 

當然,當他們第一次加載頁面,則該值將是空的,所以有什麼都沒有,但如果由於某種原因,回發,這「用戶名」字段將包含輸入的信息。

更好的是java腳本驗證,因爲表單不必回發,但是這樣做會很好!

2

由於用戶帖子所有的數據給你,這些值也是在腳本中使用。所以,你可以在文本字段的情況下很容易地使用他們,但多一點的工作需要選擇選項,複選框,單選按鈕:

<input id="myid" name="myid" type="text" 
    <?php echo !empty($_POST['myid'] ? "value=\"{$_POST['myid']}\"" ?> /> 

單選按鈕,選擇相應的選項,你反而要複選框檢查值是否與您當前正在輸出的條目相符,並打印selected =「selected」

說到驗證,您還可以通過JavaScript驗證來儘快向用戶反饋可能的故障。只要記住在服務器端有相同的驗證,以防某些人未啓用JavaScript或使用JavaScript提交它,從而繞過了客戶端驗證。

1

我檢查,看看是否該崗位價值已定,否則您可以顯示一個默認值,然後用一點的jQuery當輸入具有焦點

<input type="text" name="first_name" id="first_name" value="<?php if(isset($_POST['myid'])) { echo $_POST['myid'] } else { echo "Your Name" ?>"></input> 

這裏是jQuery的,這將刪除將其刪除當文本框具有焦點時,默認您的名字。

$(document).ready(
function(){ 
    $.fn.clearDefault = function() { 
     return this.focus(function() { 
      if(this.value == this.defaultValue) { 
       this.value = ""; 
      } 
     }).blur(function() { 
      if(!this.value.length) { 
       this.value = this.defaultValue; 
      } 
     }); 
    }; 
    // clear default textbox entries 
    $("#first_name"). clearDefault(); 
} 

);

0
<input type="text" name="username" value="<?php isset($_POST['username']) ? echo $_POST['username'] : null; ?>" /> 

將正常工作