0

我有一个简单的 ajax 调用,它返回 html 代码,

//=======-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-==-=-==-=-=-=-=
//SEARCH Submit ===============================================================================
$('.clicked_search').live("click",function() {
var from = $('#from').val();
var to = $('#to').val();
var sel = $('#sel').val();

var BegDT = new Date(from);
var EndDT = new Date(to);
var sum = BegDT - EndDT;
alert (BegDT +" b"+ EndDT +" e"+ sum);
if(sum > 0 | from == "" & to != "" | from != "" & to == ""){
$('.inv_date').show();
}
else{
    $("#app_panel").html('<div id="flash" align="left"  ><img src="img/clientimg/ajax.gif" align="absmiddle">&nbsp;<span class="loading">Loading Request...</span></div>');
    $("#clock").html('<div id="flash2" align="left"  ><img src="img/clientimg/ajax.gif" height="15px" align="absmiddle">&nbsp;<span class="loading"><font size="1">Loading Request...</font></span></div>');
    $.ajax({
        type: "POST",
        url: "database/clientpanel/logs/search_call_log.php",
        data: {
            from: from,
            to: to,
            sel: sel
            },
        cache: false,
        success: function(html){
            $("#flash").hide();
            $('.inv_date').hide();
            $("#app_panel").append(html);
        }
    });
    $.ajax({
        url: "database/clientpanel/logs/search_clock_log.php",
        cache: false,
        success: function(html){
            $("#flash2").hide();
            $('.inv_date').hide();
            $("#clock").append(html);
        }
    });
}   
return false;
});

但我也希望它返回由 ajax 调用的 php 生成的值,

session_start();
include("../../dbinfo.inc.php");

// connect to the database
  $client_id = $_SESSION['clientid'];
//===========THIS PHP VALUES RIGHT HERE===================================
      $out = 0;  
      $in = 0;
      $ext =0;
      $min = 0;
      $sec = 0;
//====================================================================
  $query=" select * from call where client='$client_id' ORDER BY date_time DESC";
  $result = $mysqli->query($query);

如何使用一个 ajax 调用返回“html 代码”和“php 值”?

4

1 回答 1

4

您可以以 JSON 格式传输数据。

在您的 PHP 中,您将构建一个数组,其中包含要为 AJAX 调用传回的所有数据。

$results = array(
  'html' => $html,
  'variable1'=>'value1',
  'variable2'=>'value2',
  ...
);

现在,您使用 - 将此数组编码为 JSON 格式json_encode()-

$jsonString = json_encode($results);
echo $jsonString;

这是您从 PHP 中回显的值。

现在在您的 jQuery$.ajax请求中,您需要指定dataType:json,并且您将能够访问成功回调中的所有参数 -

$.ajax({
  type: "POST",
  dataType: "json",
  ...
  success: function(data){
    ...
    $("#app_panel").append(data.html);
    // also available :
    // data.variable1 and data.variable2
  }
});
于 2012-12-29T16:01:36.240 回答