JQuery вкладки с помощью формы - PullRequest
0 голосов
/ 17 марта 2010

Я реализую вкладки jQuery на mysite, одна из вкладок содержит форму, и это моя проблема, форма загружается через ajax, так как она используется несколько раз на сайте. Моя проблема в том, что при отправке формы страница покидает область вкладок, тогда как мне нужно оставаться в системе вкладок.

Ниже приведен код, который я использую

TABS HTML

<div id="tabs">
                <ul>
                    <li><a href="#tabs-1">Active Categories</a></li>
                    <li><a href="#tabs-2">De-activated Categories</a></li>
                    <li><a href="<?=base_url();?>admin/addCategory">Add A New Category</a></li>
                </ul>

ФОРМА МАРКУПА

 <div id="contact_form">
<?php
    // open the form
    echo form_open(base_url().'admin/addCategory');
        // categoryTitle
        echo form_label('Category Name', 'categoryTitle');
        echo form_error('categoryTitle');
        $data = array(
            'name' => 'categoryTitle',
            'id' => 'categoryTitle',
            'value' => $categoryTitle,
        );
        echo form_input($data);


        // categoryAbstract
        $data = array(
            'name' => 'categoryAbstract',
            'id' => 'categoryAbstract wysiwyg',
            'value' => $categoryAbstract,
        );
        echo form_label('Category Abstract', 'categoryAbstract');
        echo form_error('categoryAbstract');
        echo form_textarea($data);
        // categorySlug
        $data = array(
            'name' => 'categorySlug',
            'id' => 'categorySlug',
            'value' => $categorySlug,
        );
        echo form_label('Category Slug', 'categorySlug');
        echo form_error('categorySlug');
        echo form_input($data);
        // categoryIsSpecial
        /*$data = array(
            'name' => 'categoryIsSpecial',
            'id' => 'categoryIsSpecial',
            'value' => '1',
            'checked' => $checkedSpecial,
        );
        echo form_label('Is Category Special?', 'categoryIsSpecial');
        echo form_error('categoryIsSpecial');
        echo form_checkbox($data);*/
        // categoryOnline
        $data = array(
            'name' => 'categoryOnline',
            'id' => 'categoryOnline',
            'value' => '1',
            'checked' => $checkedOnline,
        );
        echo form_label('Online?', 'categoryOnline');
        echo form_checkbox($data);
        echo form_error('categoryOnline');
        //hidden field check if we are adding or editing
        echo form_hidden('edit', $edit);
        echo form_hidden('categoryId', $categoryId);
        // categorySubmit
        $data = array('class' => 'submit', 'id' => 'submit', 'value'=>'Submit', 'name' => 'categorySubmit');
        echo form_submit($data);
        echo form_close();
    ?>
</div>

ПРОЦЕСС ФОРМЫ

function saveCategory() {
    $data = array();
        // we need to set the what element the form errors get displayed in
        $this->form_validation->set_error_delimiters('<div class="formError">', '</div>');
        // we need to estabilsh some rules so the form can be submitted without error,
        // or if there is error then the form needs show errors.
        $config = array(
                    array(
                        'field' => 'categoryTitle',
                        'label' => 'Category title',
                        'rules' => 'required|trim|max_length[25]|xss_clean'
                        ),
                    array(
                        'field' => 'categoryAbstract',
                        'label' => 'Category abstract',
                        'rules' => 'required|trim|max_length[150]|xss_clean'
                        ),
                    array(
                        'field' => 'categorySlug',
                        'label' => 'Category slug',
                        'rules' => 'required|trim|alpha|max_length[25]|xss_clean'
                        ),
                    /*array(
                        'field' => 'categoryIsSpecial',
                        'label' => 'Special category',
                        'rules' => 'trim|xss_clean'
                        ),*/
                    array(
                        'field' => 'categoryOnline',
                        'label' => 'Category online',
                        'rules' => 'trim|xss_clean'
                        )
                );
        $this->form_validation->set_rules($config);
        // with the validation rules set we can no run the validation rules over the form
        // if any the validation returns false then the error messages will be returned to the view
        // in the delimiters that we set further up the page.
        if($this->form_validation->run() == FALSE) {
            // we should reload the form
            $this->load->view('admin/add_category');
        } 
}

Ответы [ 2 ]

0 голосов
/ 17 марта 2010

вы можете использовать что-то вроде этого ... если вы используете вкладки jquery ui ...

$('.selector').tabs({ selected: <?=$_POST[selected]?$_POST[selected]:0?> });

тогда ваша форма, у вас должно быть что-то вроде

<input type="hidden" name="selected" value="2" /> // value=2 if you want third tab selected... 0 if first....
0 голосов
/ 17 марта 2010

Вы должны отправить форму, используя ajax, а затем вывести ответ вместо формы.

Или вы можете поместить iframe так, чтобы форма загружалась внутри iframe.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...