繁体   English   中英

jQuery Ajax 返回多个数据

[英]jQuery Ajax return multiple data

我正在使用 jQuery AJAX 从 PHP 返回一个字符串,它由一些 JavaScript、PHP 和 HTML 组成。

我可以使用以下代码成功地做到这一点:

header("Content-Type: text/html");
echo $content;

$.ajax({
    type: 'POST',
    url: url,
    data: data,
}).done(function(result) {

}).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(jqXHR, textStatus, errorThrown);
});

我现在的问题是我还想沿着这个字符串返回一些其他简单的值。

但是如果我使用json_encode发送这些值的数组,它会破坏我的字符串并且不会成功。

我怎么能发送一个值作为字符串(无json_encode )和其他一些价值观json_encode (所以我不json_encode我的字符串)

编辑1:

这是格式问题1:

return 'autoOpenPopup: '.!empty($options["autoOpenPopup"]) ? $this->int_to_bool($options["autoOpenPopup"]) : $this->int_to_bool(false) . PHP_EOL .';

2:

return '.!isset($options["popupInit"]) ?

                $playerId.' = jQuery("#'.$wrapperId.'").hap(settings);

            ':'

                if(hasLocalStorage){

                    if(!localStorage.getItem("hap_popup_fixed")){
                        '.$playerId.' = jQuery("#'.$wrapperId.'").hap(settings);
                    }
                }else{
                    '.$playerId.' = jQuery("#'.$wrapperId.'").hap(settings);  
                }

最好的方法是将你的数据和字符串json_encode在一起;

$data = array('some', 'array', 'elements');

$string = 'my string';

$data2 = array('more', 'data');

然后将所有这些组合在一个数组中:

$result  = array();
$result['data1'] = $data;
$result['string'] = $string;
$result['data2'] = $data2;

最后json_encode数组:

echo json_encode($result); 

然后你在JS中读取结果:

$.ajax({
    type: 'POST',
    url: url,
    data: data,
}).done(function(result) {
  var jsonResult = $.parseJSON
  var data1 = result.data;
  var data2 = jsonResult.data2;
  var str = jsonResult.string;

}).fail(function(jqXHR, textStatus, errorThrown) {
    console.log(jqXHR, textStatus, errorThrown);
});
header('Content-type: application/json');
echo json_encode($data, true);

并在您的$.ajax({...dataType:'json'});

暂无
暂无

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

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