ajax / jquery代码的说明

时间:2013-10-03 05:20:16

标签: jquery ajax

我在飞行中使用ajax / jquery来获取我的东西。我可以正确地使用我的下面的代码。我读了两个参考文献。但凭借我自己的榜样,我会感激不尽。 这是我的代码:

var a = JSON.parse(json);       
            $.post('movies_db.php',{'myd':a}, function(data) 
            {
                $.ajax({
            url:'url.php'
            ,async:     true
            ,cache:     false
            ,dataType:  'html'
            ,success:   function(data){
                $('body').html(data);
                FB.XFBML.parse();
                    }
        });      
            });

有人可以在技术层面上作业或ajax / jquery吗? $.post('movies_db.php',{'myd':a}, function(data)需要注意。

如果我想在这里发送多个值,如$ x,$ y,$ z,该怎么办? 只需{'myd':$x, $y,$z}就够了吗?

3 个答案:

答案 0 :(得分:1)

"What if I want to sent multiple values here like $x, $y, $z. Just {'myd':$x, $y,$z} is enough?"

NO。您需要发送如下所示的键值对:

{'myd':$x, 'y': $y, 'z': $z}

为什么你需要下线?我不确定。下面的行将json转换为对象,并将对象作为param传递给ajax调用。我认为你可以直接传递json而不解析,然后在服务器端对其进行解码以获取值:

var a = JSON.parse(json);

在服务器端,您可以使用

从json获取对象
json_decode($yourGetParam);

要将json转换为数组,请将第二个参数添加为true:

$myarray = json_decode($yourGetParam, true);

答案 1 :(得分:1)

好的,不要听起来很苛刻,但首先让我们格式化您的代码,以便我们可以阅读它:)

var a = JSON.parse(json);
$.post('movies_db.php',{'myd':a}, function (data) {
    $.ajax({
        url: 'url.php',
        async: true,
        cache: false,
        dataType: 'html',
        success: function (data) {
            $('body').html(data);
            FB.XFBML.parse();
        }
    });
});

因此,您$.post将变量a中的数据movies_db.php发送到a$_POST['myd']中的数据将在您的服务器上显示为{'myd':a}

如果要发送更多值,则需要向{'myd':a, 'other_data': some_var} 中传递的对象添加更多键。例如:

$x

您的示例是$y$z$.post,但这不是PHP,除非您想在页面呈现时打印这些值。

接下来,当function (data)请求完成后,它会调用$.ajax回调,然后您会发送另一个html请求。在第二个请求中,您没有发送任何数据,您只是根据事物的外观加载body。然后,您将该HTML插入到文档的$.ajax标记中。

“AJAX”请求

AJAX意味着“异步javascript和xml”,这是一个可以加载任何类型内容的可怕名称。当您致电GET时,您正在向服务器发出HTTP POST请求,您可以为此传递任何您喜欢的数据。正如ps2goat所提到的,您还可以在“常规”$.ajax请求中将$.post指定为请求类型。

POST是一个HTTP XMLHTTPRequest请求,它也会发送数据,但在幕后以不同的方式发送。您通常以这种方式上传文件或发布表单数据。我们使用“AJAX”的事实意味着我们正在使用浏览器的内置function方法(再一次,这是一个可怕的名字)。

由于javascript是异步的,因此您需要指定一个回调(您的function)来处理您的通话响应。显然,您的error将被传递回复的结果。如果请求中存在错误,则会使用您尚未指定的{{1}}回调进行处理。

我希望这会让你走上正轨。

亚伦

答案 2 :(得分:1)

您正在使用post request在myd变量中发送json对象a

包含ajax请求$.ajax({...})的函数是发布请求success的{​​{1}}函数。

ajax请求成功后,会以指定的格式发送数据。在这种情况下,它被指定为$.post('movies_db.php'....)。此html响应html用于替换文档正文标记的内容。

data

使用数组 What if I want to sent multiple values here like $x, $y, $z. Just {'myd':$x, $y,$z} is enough? OR 直接将数组设置为myd变量var a = JSON.parse("[x,y,z]"); {'myd':a}的值 您必须在服务器端处理此数组,因为它将传递到单个参数{'myd':[$x, $y,$z]}