1

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に移動すると、希望する結果を正しく生成します。jqueryuiダイアログを使用するために少し変更されました。ただし、この時点では、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);
        }
    }

coloboxajaxJSは次のようになります。$('ajax').colorbox()

私は2つの領域でajaxクラスを持っています...問題なく動作するまっすぐなリンクと上記の送信ボタン。私が探しているのは、入力値をfind()コントローラーに送信し、ページをロードして、カラーボックスウィンドウから開くことです。最終的にはpushstateに変更を加えて、新しいURL/ページをクロールして共有できるようにします。

運が悪い。助けてくれてありがとう!必要になる可能性のあるコードを追加します。

4

1 に答える 1

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;
}
于 2013-01-14T16:41:56.900 に答える