[英]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.