Rediriger une réponse d'un formulaire vers une nouvelle page web [Résolu/Fermé]

Signaler
Messages postés
272
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
-
djstoun
Messages postés
272
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
-
Bonjour toutes et tous,

Voilà, mon site est réalisé avec des cadres (oui je sais, ce n'est pas bien ^^). J'ai créé un formulaire (un menu déroulant tout simple) où selon la réponse, l'internaute est redirigé sur une page extérieure dans mon cadre. Ce que je veux c'est que pour l'un des choix, il soit possible que l'internaute soit redirigé vers une page totalement nouvelle. J'ai beau mettre la balise - target="_blank" - ou target="_parent", mon site ne calcule pas ces conditions.

Voici mon code pour que ce soit plus clair. Je veux qu'uniquement la valeur "Retour à l'accueil et au questionnaire test" puisse apparaître dans une nouvelle fenêtre.
<FORM>
<SELECT NAME="ListeUrl" SIZE=1 onChange="ChangeUrl(this.form)">
<OPTION SELECTED VALUE="">-Choisissez un thème-
   
  <OPTION VALUE="[http://www.lemonde.fr]">Accédez au site du monde

  <OPTION VALUE="index.php" target="_blank">Retour à l'accueil et au questionnaire test
</SELECT>
</FORM>


En vous remerciant pour vos conseils et aides,

EDIT : Ajout des balises de code

3 réponses

Messages postés
28063
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 avril 2020
2 239
Bonjour,

La balise target est utilisée dans les balises de lien (<a ) ou dans les instruction javascript de type window open ....
Le fait de le mettre dans les balises OPTION de ton select ne changera rien

A la limite, il faudrait un peu modifier ton code pour pouvoir l'ajouter dans le VALUE ... et en tenir compte dans ta fonction ChangeUrl

Par exemple, dans ton OPTION
<select name="ListeUrl" size=1 onChange="ChangeUrl(this.value)">
<option value=""  selected>-Choisissez un thème- </option>
<option value="http://www.lemonde.fr">Accédez au site du monde</option>
<option value="index.php|_blank" >Retour à l'accueil et au questionnaire test</option>
</select> 

puis dans le javascript
function ChangeUrl(elmValue){
 if(elmValue !=''){
  var strSplit = elmValue.split("|");
  var url = strSplit[0];
  if(strSplit.length>1){
//   var target = strSplit[1]
   var target = strSplit[1];
  }
  if(target){
   window.open(url , target );
  }else{
   document.location = url;
  }
 }
}


EDIT : Correction , manquait un point virgule sur la ligne commentée

PS: Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

.
Cordialement,
Jordane
Messages postés
272
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
3
Merci pour ta réponse jordane45.
Mais quelles modifications faire sur le javascript pour que la sélection de la réponse puisse automatiquement être exécutée sans appuyer sur aucun bouton de validation. Car avec ce code javascript, lorsque je sélectionne une des deux réponses, il ne se passe rien.
Messages postés
28063
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 avril 2020
2 239
Si tu as utilisé mon code;.. logiquement tu n'as rien de plus à faire
jordane45
Messages postés
28063
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 avril 2020
2 239
Edit :
Désolé.. il manquait un point-virgule sur une ligne...
<html>
<head>
	<title>TEST</title>
</head>
<body>
<select name="ListeUrl" size=1 onChange="ChangeUrl(this.value)">
<option value=""  selected>-Choisissez un thème- </option>
<option value="http://www.lemonde.fr">Accédez au site du monde</option>
<option value="index.php|_blank" >Retour à l'accueil et au questionnaire test</option>
</select>  
</body>
</html>
<script type="text/javascript">

function ChangeUrl(elmValue){
 if(elmValue !=''){
  var strSplit = elmValue.split("|");
  var url = strSplit[0];
  if(strSplit.length>1){
   var target = strSplit[1];
  }
  if(target){
   window.open(url , target );
  }else{
   document.location = url;
  }
 }
}
</script>
djstoun
Messages postés
272
Date d'inscription
mercredi 23 septembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
3
Effectivement, cela fonctionne. Je ne sais pas où j'avais fauté. ;) Bref, merci beaucoup. J'ai capté le problème initial.
En te remerciant.