Préremplissage d'un formulaire avec des paramètres récupérés dans l'URL
3 réponses
romainjanvier
Bonjour =E0 tous,
Je souhaite faire un script qui permette d'initialiser les valeurs d'un
formulaire lorsqu'elle sont fournies dans l'URL. Concretement, mon
champ <input type=3D"text" name=3D"couleur"> sera d=E9j=E0 pr=E9-rempli si =
on
appelle http://www.pouetpouet.pt/mapage.htm?couleur=3Dbleu
J'ai d=E9j=E0 mon script, qui fonctionne partiellement :
<-------------------------------------------------------------------->
function initForm(){
// R=E9cupere la chaine de parametre
url =3D document.location.href.split("?")
parametres =3D url[1].split("&") ;
// Pour chaque parametre
for(i=3D0;i<parametres.length;i++){
champ =3D parametres[i].split("=3D") ;
alert("Le champ "+champ[0]+" est initialis=E9 =E0 "+champ[1]) ;
// Pour les champs text
document.recherche.elements[champ[0]].value =3D champ[1] ;
// Pour les champs select
document.recherche.elements[champ[0]].selectedIndex =3D
champ[1] ;
// Pour les champs radio
document.recherche.elements[champ[0]].checked =3D champ[1] ;
// Pour les champs checkbox
document.recherche.elements[champ[0]][champ[1]].checked =3D
true ;
}
}
<-------------------------------------------------------------------->
Donc je parcours mes donn=E9es et je fais les manip pour tous les types
de formulaire, peu importe que ca fonctionne ou pas !
Mais le soucis, c'est que lorsque que ca ne fonctionne pas (Impossible
dans change l'index s=E9lectionn=E9 d'un champ texte), mon script
s'arr=EAte.
Deux solutions : - Tester le type de mon champ pour savoir quelle
propri=E9t=E9 utiliser (Comment ??)
- G=E9rer les erreurs, et ne pas en tenir
compte, moins propre (Possible en Javascript ?)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
O.L.
Bonjour à tous,
Je souhaite faire un script qui permette d'initialiser les valeurs d'un formulaire lorsqu'elle sont fournies dans l'URL. Concretement, mon champ <input type="text" name="couleur"> sera déjà pré-rempli si on appelle http://www.pouetpouet.pt/mapage.htm?couleur=bleu
J'ai déjà mon script, qui fonctionne partiellement :
<--------------------------------------------------------------------> function initForm(){
// Récupere la chaine de parametre url = document.location.href.split("?") parametres = url[1].split("&") ;
// Pour chaque parametre for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ; alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ; // Pour les champs text document.recherche.elements[champ[0]].value = champ[1] ; // Pour les champs select document.recherche.elements[champ[0]].selectedIndex > champ[1] ; // Pour les champs radio document.recherche.elements[champ[0]].checked = champ[1] ; // Pour les champs checkbox document.recherche.elements[champ[0]][champ[1]].checked > true ; } } <-------------------------------------------------------------------->
Donc je parcours mes données et je fais les manip pour tous les types de formulaire, peu importe que ca fonctionne ou pas ! Mais le soucis, c'est que lorsque que ca ne fonctionne pas (Impossible dans change l'index sélectionné d'un champ texte), mon script s'arrête.
Deux solutions : - Tester le type de mon champ pour savoir quelle propriété utiliser (Comment ??) - Gérer les erreurs, et ne pas en tenir compte, moins propre (Possible en Javascript ?)
Merci d'avance !!
En y allant avec l'artillerie lourde et pas très propre, tu dois pouvoir encadrer les différentes parties potentiellement plantable avec un try{}catch{}, comme ça si une erreur survient le script continuera puisque l'erreur aura été "traitée".
Exemple concret :
// Pour les champs text try { document.recherche.elements[champ[0]].value = champ[1] ; } catch(e) { }
etc, etc. pour les parties suivantes qui peuvent poser problème.
@+ Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Bonjour à tous,
Je souhaite faire un script qui permette d'initialiser les valeurs d'un
formulaire lorsqu'elle sont fournies dans l'URL. Concretement, mon
champ <input type="text" name="couleur"> sera déjà pré-rempli si on
appelle http://www.pouetpouet.pt/mapage.htm?couleur=bleu
J'ai déjà mon script, qui fonctionne partiellement :
<-------------------------------------------------------------------->
function initForm(){
// Récupere la chaine de parametre
url = document.location.href.split("?")
parametres = url[1].split("&") ;
// Pour chaque parametre
for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ;
alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ;
// Pour les champs text
document.recherche.elements[champ[0]].value = champ[1] ;
// Pour les champs select
document.recherche.elements[champ[0]].selectedIndex > champ[1] ;
// Pour les champs radio
document.recherche.elements[champ[0]].checked = champ[1] ;
// Pour les champs checkbox
document.recherche.elements[champ[0]][champ[1]].checked > true ;
}
}
<-------------------------------------------------------------------->
Donc je parcours mes données et je fais les manip pour tous les types
de formulaire, peu importe que ca fonctionne ou pas !
Mais le soucis, c'est que lorsque que ca ne fonctionne pas (Impossible
dans change l'index sélectionné d'un champ texte), mon script
s'arrête.
Deux solutions : - Tester le type de mon champ pour savoir quelle
propriété utiliser (Comment ??)
- Gérer les erreurs, et ne pas en tenir
compte, moins propre (Possible en Javascript ?)
Merci d'avance !!
En y allant avec l'artillerie lourde et pas très propre, tu dois
pouvoir encadrer les différentes parties potentiellement plantable avec
un try{}catch{}, comme ça si une erreur survient le script continuera
puisque l'erreur aura été "traitée".
Exemple concret :
// Pour les champs text
try { document.recherche.elements[champ[0]].value = champ[1] ; }
catch(e) { }
etc, etc. pour les parties suivantes qui peuvent poser problème.
@+
Olivier
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Je souhaite faire un script qui permette d'initialiser les valeurs d'un formulaire lorsqu'elle sont fournies dans l'URL. Concretement, mon champ <input type="text" name="couleur"> sera déjà pré-rempli si on appelle http://www.pouetpouet.pt/mapage.htm?couleur=bleu
J'ai déjà mon script, qui fonctionne partiellement :
<--------------------------------------------------------------------> function initForm(){
// Récupere la chaine de parametre url = document.location.href.split("?") parametres = url[1].split("&") ;
// Pour chaque parametre for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ; alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ; // Pour les champs text document.recherche.elements[champ[0]].value = champ[1] ; // Pour les champs select document.recherche.elements[champ[0]].selectedIndex > champ[1] ; // Pour les champs radio document.recherche.elements[champ[0]].checked = champ[1] ; // Pour les champs checkbox document.recherche.elements[champ[0]][champ[1]].checked > true ; } } <-------------------------------------------------------------------->
Donc je parcours mes données et je fais les manip pour tous les types de formulaire, peu importe que ca fonctionne ou pas ! Mais le soucis, c'est que lorsque que ca ne fonctionne pas (Impossible dans change l'index sélectionné d'un champ texte), mon script s'arrête.
Deux solutions : - Tester le type de mon champ pour savoir quelle propriété utiliser (Comment ??) - Gérer les erreurs, et ne pas en tenir compte, moins propre (Possible en Javascript ?)
Merci d'avance !!
En y allant avec l'artillerie lourde et pas très propre, tu dois pouvoir encadrer les différentes parties potentiellement plantable avec un try{}catch{}, comme ça si une erreur survient le script continuera puisque l'erreur aura été "traitée".
Exemple concret :
// Pour les champs text try { document.recherche.elements[champ[0]].value = champ[1] ; } catch(e) { }
etc, etc. pour les parties suivantes qui peuvent poser problème.
@+ Olivier
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
romainjanvier
Merci pour la réponse.
Je ne savais pas que ce traitement d'erreur était possible en Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne donc, et je m'en contenterais.
Merci encore.
Je vous donne le code corrigé
<--------------------------------------------------------------------> function initForm(){
// Récupere la chaine de parametre url = document.location.href.split("?") parametres = url[1].split("&") ;
// Pour chaque parametre for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ; //alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ; // Pour les champs text try{document.recherche.elements[champ[0]].value = champ[1] ;}catch (e){} // Pour les champs select try{document.recherche.elements[champ[0]].selectedIndex = champ[1] ;}catch (e){} // Pour les champs radio try{document.recherche.elements[champ[0]].checked = champ[1] ;}catch (e){} // Pour les champs checkbox
Je ne savais pas que ce traitement d'erreur était possible en
Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne
donc, et je m'en contenterais.
Merci encore.
Je vous donne le code corrigé
<-------------------------------------------------------------------->
function initForm(){
// Récupere la chaine de parametre
url = document.location.href.split("?")
parametres = url[1].split("&") ;
// Pour chaque parametre
for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ;
//alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ;
// Pour les champs text
try{document.recherche.elements[champ[0]].value = champ[1]
;}catch (e){}
// Pour les champs select
try{document.recherche.elements[champ[0]].selectedIndex =
champ[1] ;}catch (e){}
// Pour les champs radio
try{document.recherche.elements[champ[0]].checked =
champ[1] ;}catch (e){}
// Pour les champs checkbox
Je ne savais pas que ce traitement d'erreur était possible en Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne donc, et je m'en contenterais.
Merci encore.
Je vous donne le code corrigé
<--------------------------------------------------------------------> function initForm(){
// Récupere la chaine de parametre url = document.location.href.split("?") parametres = url[1].split("&") ;
// Pour chaque parametre for(i=0;i<parametres.length;i++){
champ = parametres[i].split("=") ; //alert("Le champ "+champ[0]+" est initialisé à "+champ[1]) ; // Pour les champs text try{document.recherche.elements[champ[0]].value = champ[1] ;}catch (e){} // Pour les champs select try{document.recherche.elements[champ[0]].selectedIndex = champ[1] ;}catch (e){} // Pour les champs radio try{document.recherche.elements[champ[0]].checked = champ[1] ;}catch (e){} // Pour les champs checkbox
Je ne savais pas que ce traitement d'erreur était possible en Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne donc, et je m'en contenterais.
Je crois que ça n'existe pas dans les "vieilles" versions de JavaScript, je ne sais pas à partir de laquelle ça a été implémenté ...
@+
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net
Merci pour la réponse.
Je ne savais pas que ce traitement d'erreur était possible en
Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne
donc, et je m'en contenterais.
Je crois que ça n'existe pas dans les "vieilles" versions de
JavaScript, je ne sais pas à partir de laquelle ça a été implémenté ...
@+
--
Olivier Ligny
Créateur web free-lance / www.cyber-tamtam.net
Je ne savais pas que ce traitement d'erreur était possible en Javascript (Quoiqu'il hérite de Java). J'ai testé, ca fonctionne donc, et je m'en contenterais.
Je crois que ça n'existe pas dans les "vieilles" versions de JavaScript, je ne sais pas à partir de laquelle ça a été implémenté ...
@+
-- Olivier Ligny Créateur web free-lance / www.cyber-tamtam.net