我正在使用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
我的字符串)
EDIT1:
以下是格式问题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);
}
答案 0 :(得分:3)
最好的方法是将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);
});
答案 1 :(得分:0)
标题('内容类型:application / json'); echo json_encode($ data,true);
和$ .ajax({... dataType:' json'});