2008-10-15 7 views
0

Essayer de créer un assistant de formulaire avec jQuery tabs.Comment utiliser les vues CodeIgniter/MVC Dans les onglets jQuery/AJAX?

Est-il possible d'avoir chaque étape du formulaire dans des vues séparées, puis de charger chaque option via les onglets jQuery/AJAX? Quand AJAX charge le formulaire partiel, il n'a aucun moyen d'accéder à js, css, etc .; comme il n'y a pas d'en-tête pour le fichier partiel. Il ne semble pas hériter de la page parent du tout. Comme une solution de contournement, j'ai tous les formulaires sur une page, divisée en onglets avec <div> s. Cela fait le travail, mais avec js désactivé cela n'a pas beaucoup de sens (bien que l'application repose sur js, et sera utilisé en interne uniquement avec js navigateurs activés). J'utilise CodeIgniter, mais je suppose que la question est valable pour n'importe quel framework MVC.

+0

Y at-il des mises à jour? –

Répondre

1

À moins que les onglets ne soient chargés dans des iframes, ils devraient avoir accès aux js et css de la page en les chargeant. Pouvez-vous faire un test pour confirmer votre suspicion que les JS et CSS ne sont pas accessibles?

+0

Fera l'action et en rendra compte ... – meleyal

1

Je viens d'écrire une application similaire en utilisant les onglets jquery en utilisant mon propre framework MVC. Voici comment j'ai résolu le problème de "navigation dans l'onglet": J'ai mes formulaires dans des vues séparées et ils sont chargés dans l'onglet avec ajax.

jQuery(document).ready(function(){ 
    var tabs = jQuery("#tabs > ul").tabs().bind('tabsload', function(event, ui){ 
     jQuery('form', ui.panel).submit(function() { 
     jQuery.ajax({ 
      type: 'post', 
      url: $(this).attr('action'), 
      data: $(this).serialize(), 
      success: function(response){ 
      if(response.match(/^http:\/\/.*$/)) 
      { 
       tabs.tabs('url', ui.index, response); 
       tabs.tabs('load', ui.index); 
      } 
      } 
     }); 
     return false; 
     }); 
    }); 

Après chaque tabload je passer outre le défaut de soumettre un événement le formulaire dans le contenu de l'onglet (accessible par ui.panel). Ensuite, le formulaire est sérialisé et envoyé en tant que poste ajax. Si la réponse est une URL, je viens de lui définir l'URL de l'onglet et de le recharger.

Hope this helps

0

Le problème que je trouve avec c'est que la plupart de mes données ajax est bing renvoyé sous forme de texte/html pas une URL? cela signifie qu'il ne s'affiche pas et si je l'attache à la 'cible' alors il ne charge pas l'événement tabsload et donc la liaison au bouton de soumission ne se produit pas

Questions connexes