2013-03-02 66 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和遍历结果建的形式,因为他们受够了。