2013-01-14 39 views
1

HTML發送數據通過提交使用顏色框AJAX

<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。

查找Model:

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個區...直線上升的聯繫,這沒有問題的作品,和阿賈克斯類上面提到的提交按鈕。我期望做的是將輸入值發送到find()控制器,加載頁面並通過colorbox窗口打開它。我最終會添加對pushstate的更改,以便可以抓取和共享新的URL /頁面。

我沒有運氣。謝謝您的幫助!將添加您可能需要的任何代碼。

+0

可以的var_dump($ _ GET);在你的查找控制器?它有任何價值嗎?要清楚:原始表單是在標準頁面還是彩色框中打開? – WebweaverD

+0

原始表單位於我的主頁上。作爲參考,www.usatoday.com/news正在做我正在做的事情。我的查找控制器正在拿起GET。如果我去www.mypage.com/welcome/find/?q=hello,則數值被正確讀取。 –

+0

這是一個利用pushstate和ajax加載的好網站:http://html5.gingerhost.com/ –

回答

1

我之前沒有使用過colorbox,所以我不是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; 
}