0

次のようなコードを使用して、ユーザーが動的に作成できる検索フォームがあります。

$('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」フィールド内に渡されますが、これは最初のテーブル行にすぎず、入力フィールドの値が入力されていません。

4

1 に答える 1

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、結果をループして、フォームを作成します。

于 2013-03-12T18:10:32.267 に答える