在两个页面上发送ajax请求?

时间:2013-11-16 11:16:01

标签: javascript php jquery ajax

我正在尝试在两个php页面上发送ajax post请求,这些页面是1. properties.php和2. profile.php我尝试的代码在properties.php上发送ajax请求,以便我如何发送相同的帖子请求在profile.php下面是我的代码

的index.php

<div id="div-second-dropdown"></div>
<div id="div-third-dropdown"></div>

ajax.js

$(document).ready(function () {
    sendAjax();
});
function sendAjax() {
    $.ajax({
        url: 'properties.php',
        type: 'post',
        data: 'account-id=' + $('#account-dropdown').val(),
        success: function (html) {
            $('#div-second-dropdown').html(html);
                        $.ajax(
    {
        url: 'analytics.php',
        type: 'post',
        data: 'account-id=' + $('#account-dropdown').val(),
        success: function (html) {
            $('#div-third-dropdown').html(html);


        }
    }
);
        }
    });
}

properties.php

<?php 

echo $_POST['accountid'];
?>

它在#div-second-dropdown中显示index.php上的post值。

profile.php

<?php 

    echo $_POST['accountid'];
    ?>

它不会在#div-third-dropdown

中的index.php上显示post值

3 个答案:

答案 0 :(得分:1)

如果第一次成功,你可以利用jquery的承诺和游戏来执行第二次通话。

function sendAjax(dest)
{
    return $.ajax({
        url: dest + '.php',
        type: 'post',
        data: 'account-id=' + $('#account-dropdown').val(),
        success: function (html) {
            $('#div-second-dropdown').html(html);
        },
        error: function(s)
        {
            return s;
        }
    });
}

$(document).ready(function () {
    sendAjax('properties').then( function(){ sendAjax('profile')} );
});

答案 1 :(得分:0)

就这样做:

$(document).ready(function() {

    sendAjax();

});


function sendAjax() 
{

    $.ajax(
        {
            url: 'properties.php',
            type: 'post',
            data: 'account-id=' + $('#account-dropdown').val(),
            success: function (html) {
                $('#div-second-dropdown').html(html);
$.ajax(
    {
        url: 'profile.php',
        type: 'post',
        data: {'account-id': $('#account-dropdown').val(),
               'profile-id': $('#profile-dropdown').val()},
        success: function (html) {
            $('#div-third-dropdown').html(html);
        }
    }
);
            }
        }
    );    

}

ajax中的第一个A代表异步,因此第二个请求在第一个请求完成之前完成。可能存在会话锁定问题。

答案 2 :(得分:-1)

尝试在第一个ajax调用的成功回调中调用第二页ajax调用

$(document).ready(function () {
   sendAjax();
});

function sendAjax(myUrl) {
    $.ajax({
        url: 'properties.php',
        type: 'post',
        data: 'account-id=' + $('#account-dropdown').val(),
        success: function (html) {
            $('#div-second-dropdown').html(html);
            $.ajax({
                url: 'profile.php',
                type: 'post',
                data: 'account-id=' + $('#account-dropdown').val(),
                success: function (html) {
                    $('#div-second-dropdown').html(html);
                }
            });
        }
    });
}