使用jquery保存/输出动态生成的html源代码

时间:2013-03-02 17:27:08

标签: javascript 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”字段中传递,但它只是第一个表行,并且没有填充输入字段的值。

1 个答案:

答案 0 :(得分: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并循环结果以构建表单。