HTML
<div class="cus_input">
<form id="category_form" method="GET" action="<?php echo base_url(); ?>welcome/find/" >
<input type="text" id="category_input" name="q" placeholder=" Find Category"/>
<a type="submit" class="ajax cboxElement" id="category_submit" src="<?php echo base_url() ?>img/board/icons/add.jpg" value="" />
</form>
</div>
控制器
function find()
{
$this->pageload_model->load_page();
$getquery = $this->input->get("q");
$data['find'] = $this->find_model->get_find_view($getquery);
$page['content'] = $this->load->view("template/findtemplate.php", $data);
echo json_encode($page);
}
当您手动转到URI时,此控制器正确生成我想要的结果。在尝试使用jquery ui对话框时略微修改了它。但是,我更倾向于使用colorbox或fancybox。
找到模特: public function get_find_view($q)
{
if (!$q) {
$html = "Search disrupted: <a href='". base_url()."'>Go back to main page </a>";
return $html;
} else {
$accountdata['found'] = $this->find_model->get_found_view($q);
$accountdata['create_category'] = $this->find_model->get_create_category_view($q);
return $this->load->view('find/find_view', $accountdata , TRUE);
}
}
colobox ajax JS应该是:$('ajax').colorbox()
我在2个区域中有一个ajax类...一个直接链接,没有问题,以及上面提到的提交按钮。我要做的是将输入值发送到find()控制器,加载页面,并通过颜色框窗口打开它。我最终会在pushstate中添加一个更改,以便可以抓取并共享新的URL /页面。
我没有运气。谢谢您的帮助!将添加您可能需要的任何代码。
答案 0 :(得分:1)
之前我没有使用过彩盒,所以我不是100%就此。我认为你需要做的是从表单序列化数据并自己处理ajax请求。所以像这样:
HTML:
<div class="cus_input">
<form id="category_form" method="GET" action="<?php echo base_url(); ?>welcome/find/" onsubmit="return category_form_submit();" >
<input type="text" id="category_input" name="q" placeholder=" Find Category"/>
<a type="submit" id="category_submit" src="<?php echo base_url() ?>img/board/icons/add.jpg" value=""/>
</form>
</div>
JQUERY:
function category_form_submit() {
$.get('/welcome/find?' + $('#category_form').serialize(), function(response){
$.fn.colorbox({html:response});
//here is where you could put your pushstate code
});
return false;
}