代码: search_json.php
<?php
function get_data()
{
$ci =& get_instance();
$ci->db->select('*');
$ci->db->from('top_menu');
$ci->db->order_by('menu_name');
$query = $ci->db->get();
$result = $query->result_array();
foreach($result as $row)
{
$menu[] = array(
'id' => $row["id"],
'label' => $row["menu_name"]
);
}
return json_encode($menu);
}
echo "<pre>";
print_r(get_data());
echo "</pre>";
?>
的index.php
<script>
$(function(){
function split( val )
{
return val.split( /,\s*/ );
}
function extractLast( term )
{
return split( term ).pop();
}
$( "#tags" )
.on( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).autocomplete( "instance" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
source: function( request, response ) {
$.getJSON( "<?php echo base_url(); ?>user/search", {
term: extractLast( request.term )
}, response );
},
search: function() {
var term = extractLast( this.value );
if ( term.length < 1 ) {
return false;
}
},
focus: function() {
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
terms.pop();
terms.push( ui.item.value );
terms.push( "" );
this.value = terms.join( ", " );
return false;
}
});
});
</script>
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="ui-widget">
<label for="tags">Tags</label>
<input type="text" class="form-control1" id="tags" name="tags"/>
</div>
controller: user.php
public function search()
{
$this->load->view('user/search_json');
}
在这段代码中,我创建了一个json格式文件(即search_json.php),我想在index.php中实现它。 search_json.php文件工作正常,数据格式正确,但是当我在标签输入字段内写入内容时,它什么也没有显示。那么,我该如何解决这个问题?
谢谢!
答案 0 :(得分:0)
首先,<?php echo base_url(); ?>user/search
可以,并且应该像<?php echo base_url('user/search'); ?>
一样使用。 (我主要做<?= base_url().'user/search'; ?>
虽然:)很有趣,看到我不是唯一一个使用'错误'的人......
如果我有ajax控制器,我倾向于设置输出:
$this
->output
->set_content_type('application/json')
->set_output(json_encode($return)); // Where $return is an array
所以在你的情况下,我猜你应该将json php文件加载为partial,并将输出设置为部分内容:
public function search() {
$return = $this->load->view('user/search_json', '', true);
$this
->output
->set_content_type('application/json')
->set_output($return);
}