2010-01-05 4 views
0

J'ai utilisé un plugin jquery UI tabs dans ma page et dans l'un des onglet que j'ai mis un formulaire. SO par exemple, l'onglet appelle une page form.php qui a la balise de forme de html. Maintenant form.php utilise ajax et jquery pour soumettre le formulaire. Est-ce que cela semble faisable?IN jquery UI tabs nous un formulaire et en utilisant ajax soumettre

$(document).ready(function(){ 

    $("form#formdata").submit(function() { 

      var str = $("#formdata").serialize(); 
      $.ajax({ 
      type: "POST", 
      url: "submit.php", 
      data: $("#formdata").serialize(), 
      success: function(msg){ 
        alert(msg); 
        } 
    }); 

return false; });

}); 

SO le code ci-dessus est dans mon form.php

Le formulaire est soumis, mais pas par ajax, et je suis dirigé vers submit.php Je veux refléter le résultat dans mes onglets de l'interface utilisateur lui-même .

suggest..thanks Please

EDIT: i mis preventDefault() et retour faux, mais il n'a pas aidé ..

+0

vous ne semblez pas utiliser votre variable « str » – Cheekysoft

+0

fois return false et preventDefault() fonctionnera, mais seulement s'il est utilisé correctement dans une page sans erreur. Rappelez-vous que javascript cesse de s'exécuter dès que la première erreur se produit. – Cheekysoft

Répondre

0

Enfin je l'ai eu de travail.

C'est ce que j'ai fait.

dans mon code onglets de l'interface utilisateur

<div id="tabs"> 
      <ul> 
       <li><a href="link.html">Link1</a></li> 
       <li><a href="form.html">Data</a></li> 
      </ul> 
</div> 

Le form.html contenait les détails du formulaire et à partir de là que j'utilisais ajax.

SO pour la corriger je l'ai utilisé les détails du formulaire sur la même page sous un div comme celui-ci

<div id="tabs"> 
       <ul> 
        <li><a href="link.html">Link1</a></li> 
        <li><a href="#form">Data</a></li> 
       </ul> 

<div id = "form"> 
//form details here 
</div> 

    </div> 

Et utilisé le code ajax jquery sur cette page.

Merci à tous ceux qui ont répondu à ma question et remerciements spéciaux à @cheekysoft

Hope this est pratique et utile ..

1

mis return false sous la forme fonction d'envoi après l'appel ajax.

+0

J'ai essayé de mettre le faux retour mais cela n'a pas aidé .. merci beaucoup pour une réponse rapide .. apprécie .. – noobcode

1

event.preventDefault() est la meilleure façon de gérer cette

$(document).ready(function() { 
    $('form#formdata').submit(function(event) { 
    event.preventDefault(); 
    var str = $('#formdata').serialize(); 
    $.ajax({ 
     type: 'POST', 
     url: 'submit.php', 
     data: $('#editmachine').serialize(), 
     success: function(msg) { alert(msg); } 
    }); 
    }); 
}); 
+0

merci va essayer cela et voir si cela fonctionne – noobcode

+0

HEY CHEEKYSOGT, j'ai essayé ce que vous avez suggéré, mais cela n'a pas fonctionné ..J'ai mis une alerte immédiatement après $ (document) .ready (fonction()) mais il n'a pas exécuté..Comment puis-je savoir si mon jquery est même en cours d'exécution ou non .. merci – noobcode

+0

@cheekysoft, désolé pour la faute de frappe erreur .. – noobcode

0

vous devez éviter ce comportement avec fausse déclaration en présenter l'événement:

$(document).ready(function(){ 

    $("form#formdata").submit(function() { 

      var str = $("#formdata").serialize(); 
      $.ajax({ 
      type: "POST", 
      url: "submit.php", 
      data: $("#editmachine").serialize(), 
      success: function(msg){ 
        alert(msg); 
        } 
    }); 
return false; 
    }); 

}); 
Questions connexes