0

Web サイトを改善したいのですが、AJAX 経由でフォームを送信するのが良い方法だとわかりました。しかし、非常に多くのフォームがあり、$('#formx').submit() を実行するのは実際的ではありません。次のようなユニバーサルマークアップを作成することで、これを自動的に行う方法があるかどうか疑問に思っていました。

<form class="ajax_form" meta-submit="ajax/pagename.php">
 <input type="text" name="inputx" value="x_value">
 <input type="text" name="inputy" value="y_value">
</form>

これを ajax/pagename.php に送信すると、inputx と inputy が自動的に含まれますか? これにより、多くの時間を節約できるだけでなく、多くのコード行を記述する必要がなくなりました。

最初の質問なので、ばかげていないことを願っています:)

4

2 に答える 2

0

ajax fot テキスト ボックスを作成して、フォーカスを変更するたびにデータベースに更新できるようにすることができます。

<form id="ajax_form1">
<fieldset> 
    <input type="text" id="inputx" value="x_value" />
    <input type="text" id="inputy" value="y_value" /> 
</fieldset>
</form>

<script>

$(document).ready(function()
{
$("form#ajax_form1").find(":input").change(function()
 {
   var field_name=$(this).attr("id");
   var field_val=$(this).val();
   var params ={ param1:field_name, param2:field_val };

   $.ajax({ url: "ajax/pagename.php",
            dataType: "json",
            data: params,           
            success: setResult      
         });
});
});
</script>
于 2013-05-21T10:00:23.590 に答える
0

このようなものは、すべてのフォームで機能するはずです。jQuery を使用しています - これはあなたのプロジェクトで利用できますか? この特定のコード チャンクは、個別にはテストされていませんが、私は常にこの方法を使用しています。それ素晴らしい時間の節約です。を使用して値を取得できるように変更meta-submitしたことに注意してくださいdata-submit$('.elemenet_class').data('submit');

HTML

<!-- NOTE: All Form items must have a unique 'name' attribute -->
<form action="javascript:void(0);" class="ajax_form" data-submit="ajax/pagename.php">
    <input type="text" name="inputx" value="x_value">
    <input type="text" name="inputy" value="y_value">

    <input type="submit" value="go" />
</form>

JavaScript

$('.ajax_form').submit(function(e){
    var path = $(this).attr('data-submit'); //Path to Action
    var data = $(this).serialize();    //Form Data
    $.post(path, {data:data}, function(obj){

    });
    return false;
})

PHP

//DEBUGGING CODE
//var_dump($_POST);
//die(null);

$data = $_POST['data'];
$inputx = $data['inputx'];
$inputy = $data['inputy'];
于 2013-05-21T10:00:50.480 に答える