我有一个搜索表单,可以由用户使用以下代码动态构建:
$('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 :(得分: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
并循环结果以构建表单。