2013-03-02 40 views
0

我有一個可以動態用戶使用代碼,如建立一個搜索表單動態生成的HTML源代碼:保存/輸出使用jQuery

$('tr.form_row:last').clone(true).insertAfter('tr.form_row:last');

所有這一切工作正常,不過,我想喜歡在提交表單時保存動態生成的表單html。我嘗試過使用$(#my_form').html(),但這似乎沒有動態內容,相反,它只是收集自定義之前的默認html。

有沒有辦法使用javascript/jquery獲取生成的源代碼?這需要包括值中輸入域用戶已經輸入等

編輯 - 我包括我的編碼迄今:

這是我試過的編碼 - 它用了jQuery表格插件,我填充稱爲「search_html」一個隱藏的表單字段:

var search_form = { 
    beforeSubmit: function() { 
     var search_html = '<table>'; 
     $('.form_row').each(function() { 
      search_html += $(this).html(); 
     }); 
     search_html += '</table>'; 
     $("#search_html").val(search_html); 
    }, 
    success: function(html) { 
     $('#search_output').html(html); 
    } 
}; 
$('#search_form').ajaxForm(search_form); 

當我提交表單,HTML是隱藏的「search_html」字段中過去了,但它只是第一個錶行和不填充輸入字段的值。

+0

你可以發佈你的嘗試代碼嗎? – darshanags 2013-03-02 17:32:54

+1

像這樣的東西可能會工作:http://jsfiddle.net/fhbjZ/ – markle976 2013-03-02 17:58:30

+0

@darshanags - 現在編輯後,包括我的嘗試 - 謝謝 – SammyBlackBaron 2013-03-02 17:58:46

回答

0

由於這並不是我希望/想到的方式,所以我用PHP編寫代碼來收集和存儲生成的表單詳細信息到數據庫中。然後,當用戶回到表單時,我會檢查他們的user_id是否在搜索歷史表中,如果是,請使用PHP將表單恢復爲原來的樣子。表單提交時

代碼:

foreach($_POST["where_field"] as $key => $val){ 
    $stmt = $pdo->prepare('INSERT INTO dynamic_form (user_id, where_field, where_value, where_criteria) VALUES (:var1, :var2, :var3, :var4)'); 
    $stmt->bindParam(':var1', $user_id, PDO::PARAM_INT); 
    $stmt->bindParam(':var2', $_POST["where_field"][$key], PDO::PARAM_STR); 
    $stmt->bindParam(':var3', $_POST["where_value"][$key], PDO::PARAM_STR); 
    $stmt->bindParam(':var4', $_POST["where_criteria"][$key], PDO::PARAM_STR); 
    $stmt->execute(); 
} 

然後實際的表單頁面上,在數據庫中查詢$user_id和遍歷結果建的形式,因爲他們受夠了。