Programmation » [Javascript] Encoder tous les paramètres d'un formulaire
Catégorie:  
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 11:15:17,
Par zion
J'ai un formulaire avec au moins 40 paramètres, paramètres qui peuvent varier au fil du temps, et je dois transmettre tous les paramètres à un script pour en récupérer le contenu.

Je suis fade, j'ai pas envie de réécrire le script 10 fois dans le temps, y a pas une fonction qui permet de générer l'URL comme si on submitait le formulaire avec tous ses params bien encodés toussa? :dawa:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:24:25,
Par Clandestino
Les paramètres de ta form sont de quelle nature ?

Je demande ça parce que, si tous les éléments sont de même nature (ex : textfield ou hidden), rien de plus facile que de construire dynamiquement la querystring avec un document.form[].elements[].foreach(...)

Dernière édition: 30/10/2008 @ 12:26:07
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:26:34,
Par zion
Du texte, y a un paquet de trucs du genre

<input type="text" name="formular[plop]" value="%" />

et le mec remplace par ce qu'il veut, mais y a parfois des caractères spéciaux et faut tout encoder :sweat:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:37:40,
Par Clandestino
Bon, alors que dis-tu d'une petite fonction comme :

  1. var cQueryString="url_to_pass.ext?dummy=0"
  2. var aFormObj=document.forms[0].elements; 
  3. aFormObj.forEach(fObject, function(fObject) { 
  4. if(fObject.type in ["text","textarea","button","hidden"]) { cQuesryString += "&" + fObject.name + "=" + fObject.value; } 
  5. else if(fObject.type == "checkbox") { cQuesryString += "&" + fObject.name + "=" + fObject.checked; } 
  6. else if(fObject.type == "select") { cQueryString += "&" + fObject.name + "=" + fObject.options[fObject.selectedIndex].value; } 
  7. location.href=cQueryString;


(A la louche et non débuggé, je préviens)

Dernière édition: 30/10/2008 @ 12:39:35
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:40:15,
Par zion
Que ton "fObject.options[fObject.selectedIndex].value" ne va pas encoder la valeur dans le input.

Si c'est un chiffre ou du texte ça ira, des caractères spéciaux ce sera dtc. J'ai déjà eut je ne sais combien d'emmerdes avec ça justement :sweat:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:44:20,
Par Clandestino
Et tu ne peux pas ajouter un contrôle supplémentaire sur la form pour interdire l'utilisation de certains caractères, par une validation en temps réel (style : onChange, onBlur etc...) ?
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:51:55,
Par Coyote
quel caractères spéciaux zion ?
Autant que possible, la gravité doit être le pire ennemi du Coyote.
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 12:54:46,
Par zion
Clandestino> Benh non, pourquoi lui interdire, j'en ai vraiment besoin moi :oh:

Coyote> De mémoire j'avais des soucis avec les accents, les %, le sigle euro, etc, etc...
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 13:23:12,
Par rfr
function urlencode(str) {
return escape(str).replace('+', '+').replace(' ', '+').replace('*', '*').replace('/', '/').replace('@', '@');
}


Suffit de passer chaque valeur à la fonction urlencode.

Dernière édition: 30/10/2008 @ 13:24:04
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 13:25:58,
Par rfr
Donc:

  1. var cQueryString="url_to_pass.ext?dummy=0"
  2. var aFormObj=document.forms[0].elements; 
  3. aFormObj.forEach(fObject, function(fObject) { 
  4. if(fObject.type in ["text","textarea","button","hidden"]) { cQuesryString += "&" + fObject.name + "=" + urlencode(fObject.value); } 
  5. else if(fObject.type == "checkbox") { cQuesryString += "&" + fObject.name + "=" + fObject.checked; } 
  6. else if(fObject.type == "select") { cQueryString += "&" + fObject.name + "=" + urlencode(fObject.options[fObject.selectedIndex].value); } 
  7. }); 
  8. location.href=cQueryString;
To die is a time consuming activity, it often takes a lifetime (but some are faster than others ... though)
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 13:31:00,
Par berzemus
Salut tout le monde.

La dernière fois que j'ai du faire ça j'ai simplement encodé le contenu des champs en base64.

Une autre solution serait d'en faire un joli objet (Json), de le sérialiser, l'encoder en base64, et de l'envoyer.

Le script quant à lui déserialize, dé-jsonise, et il à un joli tableau tout de suite prêt à l'emploi (après les vérifications de rigueur).
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 13:52:22,
Par zion
le base64 c'est une idée, je vais essayer la version rfr avant, si ça merde pourquoi pas en base64, mais pourquoi ils ont pas prévu une jolie fonction toute faite :tinostar:

:petrus:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 14:09:27,
Par Clandestino
...je vais essayer la version rfr avant...


Et moi, je pue ? :boude:






:neowen:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 14:13:12,
Par zion
Benh toi tu encodes pas :oh:

rfr il utilise ta solution et il encode :petrus:

mais on me dit que je peux pas toucher à ce serveur aujourd'hui, je suis puni ça consomme trop de ressources, ils en ont besoin :ddr555:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 14:28:18,
Par gizmo
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 30/10/2008 @ 14:29:55,
Par zion
:petruslove:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 14/11/2008 @ 12:12:11,
Par zion
J'ai mis en prod le script avec le jquery de gizmo, c'est sublimissime! :dawaaa:

Merci :smile:
Je suis le Roy :ocube:
   
[Javascript] Encoder tous les paramètres d'un formulaire
Publié le 14/11/2008 @ 12:19:01,
Par max
oui, il est sympa ce plugin, je l'ai utilisé pour quelques formulaires "pénibles" et ils ne l'étaient plus grâce à lui :smile:
Trololo
Répondre - Catégorie:  
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?