Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将ajax$.get值传递给jQuery中的另一个$.get函数?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 如何将ajax$.get值传递给jQuery中的另一个$.get函数?

Javascript 如何将ajax$.get值传递给jQuery中的另一个$.get函数?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在jQuery中有以下功能: 问题是我无法将变量branchaddress传递到函数外部。只能在$.get()内显示;是否有任何方法可以传递值,或者我需要找到另一种方法来传递值 这是我的全部代码 function.js function approveData(name, branch,email){ var branchaddress = ""; $.get('php/ajax-get-branch-address.php', {branch_address: branch}

我在jQuery中有以下功能:

问题是我无法将变量branchaddress传递到函数外部。只能在$.get()内显示;是否有任何方法可以传递值,或者我需要找到另一种方法来传递值

这是我的全部代码

function.js

function approveData(name, branch,email){
    var branchaddress = "";
    $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
            // alert(branchaddress);
    });
    // alert(branchaddress);
    $.get("php/ajax-mail.php", 
            {
                "type": 'APPROVE', 
                "name": name,
                "branchaddress": branchaddress,
                "email"         : email
            }
        );  
}
<?php
$connStr = "";
$conn = oci_connect("", "", $connStr);
$branch_address = $_GET['branch_address'];
$query = "select * from table where branch_name = '".$branch_address."' "; 
$result = oci_parse($conn, $query);
oci_execute($result);
$row = oci_fetch_array($result);
echo json_encode($row);
?>
ajax获取分支地址.php

function approveData(name, branch,email){
    var branchaddress = "";
    $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
            // alert(branchaddress);
    });
    // alert(branchaddress);
    $.get("php/ajax-mail.php", 
            {
                "type": 'APPROVE', 
                "name": name,
                "branchaddress": branchaddress,
                "email"         : email
            }
        );  
}
<?php
$connStr = "";
$conn = oci_connect("", "", $connStr);
$branch_address = $_GET['branch_address'];
$query = "select * from table where branch_name = '".$branch_address."' "; 
$result = oci_parse($conn, $query);
oci_execute($result);
$row = oci_fetch_array($result);
echo json_encode($row);
?>
试试这个

function approveData(name, branch,email){
    var branchaddress = "";
    $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
             $.get("php/ajax-mail.php", 
            {
                "type": 'APPROVE', 
                "name": name,
                "branchaddress": branchaddress,
                "email"         : email
            }
        ); 
    });   
}
您在第二个ajax get中没有获得价值,因为第一个请求尚未完成,如果您想这样做,您可以在第一个请求中使用“async:false”和适当的ajax请求,而不是按如下方式获取请求

function approveData(name, branch, email) {
    var branchaddress = "";
    $.ajax({
        url: 'php/ajax-get-branch-address.php'),
        type: "get",
        data: {branch_address: branch},
        async: false,
        success: function (data) {
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
            // alert(branchaddress);
        }
    });
    // alert(branchaddress);
    $.get("php/ajax-mail.php",
            {
                "type": 'APPROVE',
                "name": name,
                "branchaddress": branchaddress,
                "email": email
            }
    );
}
试试这个

function approveData(name, branch,email){
    var branchaddress = "";
    $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
             $.get("php/ajax-mail.php", 
            {
                "type": 'APPROVE', 
                "name": name,
                "branchaddress": branchaddress,
                "email"         : email
            }
        ); 
    });   
}
您在第二个ajax get中没有获得价值,因为第一个请求尚未完成,如果您想这样做,您可以在第一个请求中使用“async:false”和适当的ajax请求,而不是按如下方式获取请求

function approveData(name, branch, email) {
    var branchaddress = "";
    $.ajax({
        url: 'php/ajax-get-branch-address.php'),
        type: "get",
        data: {branch_address: branch},
        async: false,
        success: function (data) {
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
            // alert(branchaddress);
        }
    });
    // alert(branchaddress);
    $.get("php/ajax-mail.php",
            {
                "type": 'APPROVE',
                "name": name,
                "branchaddress": branchaddress,
                "email": email
            }
    );
}

欢迎使用异步调用(AJAX)!这里的问题是,当您的函数执行时,它从上到下运行。但您正在对外部服务执行两个异步调用,顾名思义,这两个调用是异步的。因此,在您的代码中,它是这样的:

function approveData(name, branch,email){
    var branchaddress = "";
    $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
            ar = JSON.parse(data);
            branchaddress = ar.BRANCH_ADDRESS;
            // alert(branchaddress);
            $.get("php/ajax-mail.php", 
                {
                    "type": 'APPROVE', 
                    "name": name,
                    "branchaddress": branchaddress,
                    "email"         : email
                }
            );
    });  
}
  • 声明变量
    branchaddress
  • php/ajax get branch address.php进行异步调用,完成后,调用
    .done()
    方法
  • 在等待响应时,在
    php/ajax mail.php
    上再次调用,完成后,调用
    .done()
    方法
  • 你现在看到问题了吗?您希望在第一个请求完成之前使用
    branchaddress
    ,这就是值尚未准备就绪的原因。这里有几个选项,但最简单的一个选项是在第一次调用后使用callback进行第二次调用,如下所示:

    function approveData(name, branch,email){
        var branchaddress = "";
        $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
                ar = JSON.parse(data);
                branchaddress = ar.BRANCH_ADDRESS;
                // alert(branchaddress);
                $.get("php/ajax-mail.php", 
                    {
                        "type": 'APPROVE', 
                        "name": name,
                        "branchaddress": branchaddress,
                        "email"         : email
                    }
                );
        });  
    }
    

    你也可以用它来让它看起来更干净一点。但是我们的想法是在第一次调用完成后而不是在它发生之前访问值。

    欢迎使用异步调用(AJAX)!这里的问题是,当您的函数执行时,它从上到下运行。但您正在对外部服务执行两个异步调用,顾名思义,这两个调用是异步的。因此,在您的代码中,它是这样的:

    function approveData(name, branch,email){
        var branchaddress = "";
        $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
                ar = JSON.parse(data);
                branchaddress = ar.BRANCH_ADDRESS;
                // alert(branchaddress);
                $.get("php/ajax-mail.php", 
                    {
                        "type": 'APPROVE', 
                        "name": name,
                        "branchaddress": branchaddress,
                        "email"         : email
                    }
                );
        });  
    }
    
  • 声明变量
    branchaddress
  • php/ajax get branch address.php进行异步调用,完成后,调用
    .done()
    方法
  • 在等待响应时,在
    php/ajax mail.php
    上再次调用,完成后,调用
    .done()
    方法
  • 你现在看到问题了吗?您希望在第一个请求完成之前使用
    branchaddress
    ,这就是值尚未准备就绪的原因。这里有几个选项,但最简单的一个选项是在第一次调用后使用callback进行第二次调用,如下所示:

    function approveData(name, branch,email){
        var branchaddress = "";
        $.get('php/ajax-get-branch-address.php', {branch_address: branch}).done(function(data){
                ar = JSON.parse(data);
                branchaddress = ar.BRANCH_ADDRESS;
                // alert(branchaddress);
                $.get("php/ajax-mail.php", 
                    {
                        "type": 'APPROVE', 
                        "name": name,
                        "branchaddress": branchaddress,
                        "email"         : email
                    }
                );
        });  
    }
    

    你也可以用它来让它看起来更干净一点。但我们的想法是在第一次调用完成后而不是在调用发生之前访问值。

    Downvoter-对downvote有什么解释吗@如果你觉得这个答案有用,那么其他人可以从中受益。it@SebastianKaczmarek我也无缘无故地被否决了。@ShoyebSheikh我想这是一个机器人或者某个愤怒的人。我对你的答案投了赞成票that@SebastianKaczmarek你也投了赞成票,干杯!否决票-对否决票有何解释@如果你觉得这个答案有用,那么其他人可以从中受益。it@SebastianKaczmarek我也无缘无故地被否决了。@ShoyebSheikh我想这是一个机器人或者某个愤怒的人。我对你的答案投了赞成票that@SebastianKaczmarek你也投了赞成票,干杯!