【发布时间】:2018-05-24 16:58:37
【问题描述】:
我有以下代码
<?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,从控制器模型中获取值并在 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
我无法弄清楚为什么我从控制器收到解析错误,我只获得有效的 JSON 数据?
如果欢迎参加考试 和开始考试都在制造问题,那么如何解决呢?
【问题讨论】:
-
如果您希望它是 json,请不要在响应中返回 Welcome to Exam 和 Start Now。
-
基本上,您将 ajax 发布请求发送到生成 json 和 div 的同一页面。我建议您创建一个单独的 php 文件,仅包含用于生成没有任何 html 的 json 数据的代码,然后更新您的 jquery ajax 帖子以指向新的 url。
-
@Taplar 这两个东西我没退
-
@MohsinMehmood 这是 CodeIgniter。我了解您在核心 PHP 中的解决方案,但是如何在 CI 中完成?一切都只能在控制器上运行。
-
如果你没有返回这些字符串,那么你在最后一个代码 sn-p 中向我们展示了什么,你有 json 后跟这两个字符串?
标签: javascript php jquery json codeigniter