2011-03-14 74 views
3

我正在創建一個多頁面表單,現在我正在諮詢Stack guru的一些幫助;使用jQuery添加表單域和PHP會話來記住添加的字段

在這個頁面上,用戶可以添加更多的輸入字段[類型=文本]到頁面上

所以基本上是「子名稱」,則添加按鈕的單一輸入,允許用戶添加更多的孩子如果他們有多個。

我的表單允許你前後移動,表單會記住輸入的內容,我如何獲得jQuery和php來記住表單域被添加了,所以當用戶重新瀏覽頁面時它們不會被隱藏?

回答

2
與添加輸入

那麼你可以這樣做:

$('form').append('<input>',{type: 'text', name: 'input_name'}) 

,你可以保存表單數據之前的部分用php $ _SESSIONs形式的

例如:在PHP你會

獲取所有後(或獲取)值:

$_POST = array ('name1' => 'me', 'name2' => 'you')... 

然後你可以保存那些與會議:

$_SESSION['lastpostedvalues'] = $_POST; 

或類似的東西。

記得有session_start()在PHP文件

+0

我明白了,你能給出一個從jquery生成的輸入的例子以及它如何存儲在Session中嗎?編輯 – Xavier 2011-03-14 23:31:44

+0

以添加如何將帖子值添加到會話中。 – Neal 2011-03-14 23:34:29

+0

jquery代碼不包含表單名稱或類型變量 – Xavier 2011-03-14 23:47:48

0

的頂部試試這個,如果有幫助

HTML代碼

<span> 

    <span id="childs"></span> 

    <input type="text" id="testid" /> 

    <input type="submit" id="submit" value="Add" /> 
</span> 

的jQuery ---

$(document).ready(function(){ 
$('#submit').click(function(){ 
    $('#childs').append('<a href="">'+$('#testid').val()+'</a><br />'); 
    $value=$('#testid').val(); 
    $.get('somePHPCodewhichaddsToSession.php',{ 
     data:$values 
    },function(data){ 
     //some staff after the session is add 
    }); 

}); 
}); 
/*PHP code to add the sessions*/ 


if(isset($_GET['data'])){ 
    $_SESSION['AnyName']=$_GET['data']; //this could be an array to hold all the childern names 
    if(isset($_SESSION['AnyName'])) 
     echo true; //handle this return in your ajax call oncomplete callback 
    else 
     echo false; 
} 

/* PHP code to dispaly the childrens*/ 

//get the array from the session 

if(isset($_SESSION['AnyName']){ 
    get the values and display or do something with them 
     $values= $_SESSION['AnyName'] 
    } 

**確保格式化html以符合您的需求

http://jsfiddle.net/tsegay/5VhVp/