提交没有变量的表单的最佳方法是什么

时间:2012-08-21 10:58:34

标签: php jquery json

大家好我尝试使用jquery(json)和php创建一个小应用程序 而此时我想通过替换

来编写最佳代码
$(document).ready(function () {
    $('form').submit(function () {
        var action = $(this).attr('action');
        var name = $('.name').val();
        var email = $('.email').val();
        var city = $('.city').val();
        $.post(action, {
            name: name,
            email: email,
            city: city
        }, function (data) {
            alert(data.error);
        }, 'json');
        return false;
    });
});

所以如何通过我所谈论的另一种方法(姓名,电子邮件,城市)发送所有这些变量

4 个答案:

答案 0 :(得分:0)

我想你需要类似的东西

$(function(){
   $('form').submit(function(e){
       e.preventDefault();
       $.post(
           $(this).attr('action'),
           $(this).serialize(),
           function(data){
               alert(data.error); 
           },
           'json'
       );
   }); 
});

答案 1 :(得分:0)

您可以使用$ .serialize序列化表单。

$.post('url', $(this).serialize(), ... );

(注意:this仅适用于您的示例的格式范围)

答案 2 :(得分:0)

好像@ D.Muller说你可以使用这样的东西:

var serializedData = $('form').serialize();

$.post(
    'getSerializedData.php',
    {data:serializedData},
    function(data){
    }
)

然后在你的php脚本中你应该使用unserialize:

<?php

$serializedData = $_POST['data'];
$unserializedData = array();

parse_str($unserializedData,$serializedData);

print_r($unserializedData);

?>

但是,我不确定这是不是你想要的。无论如何,
希望我帮了一下! nLamprok

答案 3 :(得分:0)

我似乎明白为什么你不能得到发布的变量。因为,您没有为输入字段指定属性“name”。使用名称属性而不是将变量名称传递给您的php脚本。