我有以下代码
<?php
$arr=array();
$arr=$this->session->ques;
if(isset($this->session->username))
{
echo '<div id="instruction">
Welcome to Exam
</div>';
echo '<div id="questdiv">
Start Now
</div>';
}
?>
$(document).ready(function(){
$("#questdiv").click(function()
{
$("#instruction").hide();
$.ajax({
type:"post",
url:"<?php echo base_url();?>"+"candidate/nextques",
dataType:"json",
data:{val: <?php echo json_encode($arr);?>},
success:function(res){
if(res)
{
$("#questdiv").append('<span>'+res[0]['question']);
$("#questdiv").append('<span>'+res[0]['option1']);
$("#questdiv").append('<span>'+res[0]['column2']);
$("#questdiv").append('<span>'+res[0]['column3']);
$("#questdiv").append('<span>'+res[0]['column4']);
}
},
error: function(res,status,error) {
var err = res.responseText;
alert(res.Message);
alert(status);
alert(error);
}
});
});
});
</script>
在这段代码中,我有两个 div。我希望在单击 div questdiv 时,AJAX 应该触发,从 Controller 模型获取值并在 div 内附加一些子项。
虽然数据是从数据库中获取的(如网络调试所示),但预览也显示了上述两个 div,因此我收到 JSON 解析错误。
[{"sno":"1","examcode":"PHP-101","question":"What is PHP?","image":"1-1.jpg","option1":"scripting language","image1":"1-2.jpg","option2":"programming language","image2":"1-3.jpg","option3":"both","image3":"1-4.jpg","option4":"none","image4":"1-5.jpg","correctans":"d58abf157fec3d16bf921e97966c9e57"}]
Welcome to Exam
Start Now
我无法弄清楚为什么在从 Controller 获取解析错误时,我只获取有效的 JSON 数据?
如果欢迎参加考试 和开始考试都会产生问题,那么如何解决呢?
最佳答案
您应该有单独的 Controller 方法,一种用 div 渲染页面,另一种仅返回 json 对象。他们这样做的方式,你不会有一个有效的 json 对象,因为 div 也在其中渲染(因为它本质上是在 ajax 调用上重新渲染页面)。
示例:
class Some_controller {
public function index() {
$this->load->view('someview');
}
public function json() {
$array = array('123', '456');
echo json_encode($array);
}
}
一些观点:
<script>
$(document).ready(function () {
$('#doAction').on('click', function (e) {
e.preventDefault();
$.ajax({
type: "get",
url: "<?php echo base_url(); ?>some_controller/json",
dataType: "json",
success: function (res) {
console.log(res);
}
});
});
});
</script>
<div><a id="doAction" href="javascript:void()">Some div</a></div>
关于javascript - CI 中的 Ajax 问题。获取数据但JQuery显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50514581/