2010-03-17 2 views
0

J'implémente les onglets jQuery sur mysite, un des onglets contient un formulaire et c'est mon problème, le formulaire est chargé via ajax car il est utilisé plusieurs fois sur tout le site. Mon problème est que lorsque le formulaire est soumis, la page quitte la zone à onglets, alors que je dois rester dans le système à onglets.jquery onglets avec l'aide du formulaire

est en dessous du code que je utilise

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> 

FORMULAIRE MARKUP

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

FORMULAIRE PROCESSUS

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'); 
     } 
} 

Répondre

0

vous pouvez utiliser quelque chose comme ça ... si vous utilisez les onglets ui jquery ...

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

alors votre formulaire, vous devez avoir quelque chose comme,

<input type="hidden" name="selected" value="2" /> // value=2 if you want third tab selected... 0 if first.... 
0

Vous devez soumettre le formulaire en utilisant ajax et la n rend la réponse à la place du formulaire.

Ou vous pouvez placer un iframe afin que le formulaire soit chargé dans un iframe.