我试图使用json从php文件中检索一些信息,但它不起作用,我不知道为什么,它没有显示任何错误。我在运行时没有遇到任何错误,但是我无法弄清楚是什么原因造成这种情况无效。另外,控制台日志中没有显示任何内容
这是我的js
$(document).on('change', 'input[name="design"]', function(){
var val = $(this).val();
$.ajax({
type: 'POST',
url: 'ajax/getdesign.php',
data: {val:val},
dataType: 'json',
success: function(result){
console.log(result.design);
console.log(result.option);
$('.pagepreview').html(result.design);
$('.design-options').html(result.option);
}
});
});
这是php
<?php
if(isset($_REQUEST)){
$design = $_REQUEST['val'];
if($design == '1'){
$thedesign = '
<div class="d1-header"></div>
<div class="d1-sidebar"></div>
<div class="d1-content"></div>';
$theoptions = '
<label>Header Color</label> <input type="color" id="header-color" />
<label>Header Image</label> <input type="file" id="header-image" />';
} else if($design == '2'){
$thedesign = '
design 2';
$theoptions = '
options 2';
} else if($design == '3'){
$thedesign = '
design 3';
$theoptions = '
options 3';
} else {
echo "failed";
}
echo json_encode(array('design'=> $thedesign));
echo json_encode(array('option'=> $theoptions));
}
header('Content-Type: application/json');
?>
答案 0 :(得分:1)
问题可能是因为您在单个输出中尝试了两个json_encode()
:
尝试将数组合并到一个输出中,如下所示:
echo json_encode(array('design'=> $thedesign , 'option'=> $theoptions));
答案 1 :(得分:0)
尝试在你的成功函数
之后的ajax调用中添加一个错误函数 error: function (msg) {
alert(msg.responsetext);
};
并使用fiddler捕获踪迹
答案 2 :(得分:0)
解决了这个问题,我在数据变量上缺少了第一件事,加上我对JSON做错了,但我现在有效了。有没有更好的方法来做到这一点?
这是js
$(document).on('change', 'input[name="design"]', function(){
var val = $(this).val();
$.ajax({
type: 'POST',
url: 'ajax/getdesign.php',
data: {'val':val},
dataType: 'json',
success: function(result){
$('.pagepreview').html(result['thedesign']);
$('.design-options').html(result['theoptions']);
}
});
});
这是php
<?php
header('Content-Type: application/json');
if($_REQUEST){
$design = $_REQUEST['val'];
if($design == '1'){
$response['thedesign'] = '
<div class="d1-header"></div>
<div class="d1-sidebar"></div>
<div class="d1-content"></div>';
$response['theoptions'] = '
<label>Header Color</label> <input type="color" id="header-color" />
<label>Header Image</label> <input type="file" id="header-image" />';
} else if($design == '2'){
$response['thedesign'] = '
design 2';
$response['theoptions'] = '
options 2';
} else if($design == '3'){
$response['thedesign'] = '
design 3';
$response['theoptions'] = '
options 3';
} else {
echo "failed";
}
echo json_encode($response);
}
?>