0

我想改进我的网站并想出一个好方法是通过 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 回答