繁体   English   中英

如何从AJAX获取两个返回变量

[英]How to get two return variables from AJAX

我发送数组表id以从数据库中获取该表id的表号。 我需要添加所有那些表ID默认席位并返回。

JAVA SCRIPT:

        function showUser(str)
        {

        if (str=="")
          {
          str="";
          document.getElementById("table_Merge_comb").value = ''; 
          return;
          } 
        if (window.XMLHttpRequest)
          {// code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp=new XMLHttpRequest();
          }
        else
          {// code for IE6, IE5
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {

            document.getElementById("table_Merge_comb").value = xmlhttp.responseText; 
            }
          }
        xmlhttp.open("GET","get_tableno.php?table_id="+str,true);
        xmlhttp.send();
        }

get_table_no.php

<?PHP 
include 'config.php';
static $total_default_seats =0;
    $item = $_GET['table_id'];              
    $table_id = explode(",",$item);             
    $table_count = count($table_id);            

    for($i=0 ; $i<$table_count; ++$i)             
    {
        $qry = mysql_query("SELECT * FROM table_info WHERE table_id = '$table_id[$i]'");
        $row = mysql_fetch_array($qry);
        $table_no[$i] = $row['table_no'];
        $total_default_seats += $row['default_seats'];
    }
    echo implode(",",$table_no);    
?>

在此代码中echo implode(“,”,$ table_no); 我得到它并通过document.getElementById(“table_Merge_comb”)将其存储在文本框中.value = xmlhttp.responseText; 现在我需要获得$ total_default_seats这个值

在PHP中创建一个数组,然后使用json_encode将其发送回浏览器:

$returnValues = array(
    "value1" => "a string that I want to return",
    "value2" => array( "some", "other", "values" ),
);

echo json_encode($returnValues);

这会将以下内容发送回浏览器:

{"value1":"a string that I want to return","value2":["some","other","values"]}

在您的AJAX成功错误处理程序中,您可以获取值:

var x = JSON.parse(xmlhttp.responseText);

console.log(x.value1);    // outputs "a string I want to return"

console.log(x.value2[0]);    // outputs "some"

然后你可以用值做任何你想做的事。

此方法允许您发回任何您喜欢的结构化数据 - 多个返回值(作为数组),数组,对象等。

用逗号分隔这两个值,然后在Javascript中使用split:

var returnVars = xmlhttp.responseText.split(",");
var var1 = returnVars[0];
var var2 = returnVars[1];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM