我必须以这种格式获得输出
var sampleTags = ['c++', 'scala'];
我的javascript函数是:
<script>
$(document).ready(function(){
$(function(){
var sampleTags;
$.ajax({
url:"<?php echo base_url('ajax_get_tags/gettags'); ?>"
}).done(function(data) {
if (data) {
sampleTags = data;
}
});
......................
.......................
$(function(){
var sampleTags = <?php echo json_encode($query) ?>;
我的php控制器是
function gettags(){
$json_array=$this->tagsmodel->get_all_tags();
echo json_encode($json_array);
}
我的模特是
//-------------------------------Function get all tags--------------------------------
function get_all_tags() {
$this->load->database();
$this->db->limit('10');
$this->db->select('tags_name');
$res = $this->db->get('tags');
$ret = array();
foreach ($res->result_array() as $row) {
$ret[] = $row['tags_name'];
}
return $ret;
}
如何从ajax请求中获取json输出以显示其javascript变量的值? 请帮我解决这个问题。
答案 0 :(得分:0)
您使用的是较旧版本的jQuery,因此.done
无效。看起来您想要将一个密钥添加到名为complete
的请求对象中,并使用匿名函数作为其值:
$.ajax({
url: "<?php echo base_url('ajax_get_tags/gettags'); ?>",
complete: function(data) {
if (data) {
sampleTags = data;
}
}
});
我通过Google搜索您的错误消息找到了这个。其中一个结果就是这个问题:Object #<XMLHttpRequest> has no method 'done'。您可以直接使用Google搜索错误消息并自己计算出来。
答案 1 :(得分:-1)
我想提出一些建议