2010-09-28 3 views
6

Je suis au courant d'envoyer des valeurs de formulaire en utilisant la méthode = getcomment puis-je soumettre un formulaire en utilisant la méthode get dans jquery

<FORM METHOD=get ACTION="test.html"> 

J'ai une zone de texte qui capture email. Lorsque je soumets un formulaire en utilisant la méthode GET, le @ est converti en% 40. J'avais lu quelque part que Jquery pouvait envoyer les données en sérialisant. Comment ceci peut être fait? Merci

+0

Je ne suis pas sûr de ce que votre question est ici. S'agit-il de faire en sorte que le '@' ne s'échappe pas? Puisque c'est le comportement correct: le point entier est qu'il est échappé, de sorte que votre code côté serveur puisse le lire correctement, sans que la demande soit mal interprétée. Envoyer le formulaire via AJAX ne changera pas cela. – Matchu

Répondre

12

Si vous souhaitez soumettre un formulaire en utilisant jQuery serialize() et la méthode GET, vous pouvez faire quelque chose comme ceci:

Si vous utilisez PHP:

Forme:

<form action='test.php' method='GET' class='ajaxform'> 
    <input type='text' name='email'> 
</form> 

jQuery:

jQuery(document).ready(function(){ 

    jQuery('.ajaxform').submit(function() { 

     $.ajax({ 
      url  : $(this).attr('action'), 
      type : $(this).attr('method'), 
      data : $(this).serialize(), 
      success : function(response) { 
         alert(response); 
         } 
     }); 

     return false; 
    }); 

}); 

En test.php vous pouvez accéder à vos courriels comme ceci:

$_GET['email']

Plus de détail:

http://api.jquery.com/jQuery.ajax/

+0

Merci Naveed .. c'est exactement ce que je voulais :) – Prady

+0

@Prady: Bienvenue – NAVEED

+0

Sauf que vous ne pouvez pas obtenir un email avec $ _GET ['email'] dans une page html, il faudrait avoir le .php ou. extension phtml (sauf si vous définissez apache pour activer le moteur CGI-SCRIPT pour les extensions .html) –

1

Vous pouvez utiliser la réponse de NAVEED d'envoyer toute la forme . Bien que si vous voulez envoyer un seul champ, vous pouvez utiliser le second parameter of the get function.

jQuery.get (url, [data], [rappel (données, textStatus, XMLHttpRequest)], [dataType])

Questions connexes