-1

大家好,我尝试使用 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

4 回答 4

0

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

于 2012-08-21T14:45:04.983 回答
0

正如@D.Muller 所说,你可以使用这样的东西:

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

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

然后在你的php脚本中你应该像这样使用反序列化:

<?php

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

parse_str($unserializedData,$serializedData);

print_r($unserializedData);

?>

但是,我不确定这是否是您正在寻找的。无论如何,
希望我能有所帮助!
nLamprok

于 2012-08-21T11:29:52.743 回答
0

我想你需要这样的东西

$(function(){
   $('form').submit(function(e){
       e.preventDefault();
       $.post(
           $(this).attr('action'),
           $(this).serialize(),
           function(data){
               alert(data.error); 
           },
           'json'
       );
   }); 
});
于 2012-08-21T11:01:34.350 回答
0

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

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

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

于 2012-08-21T11:02:02.377 回答