Rediriger une réponse d'un formulaire vers une nouvelle page web

Résolu
djstoun Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   -  
djstoun Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
djstoun Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   5
 
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.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Si tu as utilisé mon code;.. logiquement tu n'as rien de plus à faire
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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>
0
djstoun Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   5
 
Effectivement, cela fonctionne. Je ne sais pas où j'avais fauté. ;) Bref, merci beaucoup. J'ai capté le problème initial.
En te remerciant.
0