Liste déroulante qui agit sur zone de texte hidden/visible

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Liste déroulante qui agit sur zone de texte hidden/visible

par laplumaencre » 03 août 2006, 09:50

BONNE NOUVELLE :!: je viens de tester avec firefox et le ALL fonctionne impeccable , a+ merci atous et vive le forum :-) :D

par laplumaencre » 03 août 2006, 08:48

Désolé j'étais unpeu énervé, je suis à la bourre ds mon projet...

Pour le getElementById, j'aurai bien voulu en effet que ça marche aussi sous mozilla (j'utilise que ça) mais ça ne fonctionnais pas avec . alors j'ai remis all, en sachant que ds l'entreprise ou je suis il utilise que IE et tous microsoft d'ailleur, le developpement en php/mysql est une 1ere et une exeptions ici ;-))) merci encore a+

par Truc » 02 août 2006, 15:51

.
... meme si personne m'a aidé ...
Mouais... :roll:
Tu dis que ceci ne fonctionne pas ?
document.getElementById("afficheur").style.visibility="visible";


Firefox ne va pas reconnaitre document.all et pourtant tu devrais le prendre en compte. :-k
J'ai attendu de voir si tu en tenais compte mais j'ai été doublé :oops:
8-[

AFFAIRE RESOLU

par laplumaencre » 02 août 2006, 14:37

Bon merci a tous pour votre aide meme si personne m'a aidé... voici le code qui marche enfin , chuii soulagé a+

Code : Tout sélectionner

*Type de cordon : <select name="type_cordon" onChange="afficher(this)"> <?php $connexion=mysql_connect("$hostname_dbprotect","$username_dbprotect","$password_dbprotect") or die("<p>Echec de connexion!"); mysql_select_db("$database_dbprotect", $connexion) or die ("<p>Echec de connexion à la base de donnée!"); $SQL5 = "SELECT id_menu,libelle FROM menu_deroulant WHERE id_menu='type_cordon'"; $res5 = mysql_query($SQL5); $value=0; while ($val5=mysql_fetch_array($res5) ) { echo '<option value="'.$value.'">'.$val5['libelle'].'</option>\n'; $value++; } ?> </select> <input type="text" id="afficheur" size="15" style="visibility:hidden"> <SCRIPT language="javascript"> function afficher(objet) { if (objet.value==3) { document.all["afficheur"].style.visibility="visible"; } else { document.all["afficheur"].style.visibility="hidden"; } } </SCRIPT>

par laplumaencre » 02 août 2006, 14:23

Merci c'est sympa ! merci merci, mais y a quelqu'un ds ce forum qui pourrait vraiment m'aider...

par zeus » 02 août 2006, 14:03

En fait, c'est moi qui ai reformaté ton 1er message ;)

J'ai attendu de voir si tu en tenais compte mais j'ai été doublé :oops:

PS : j'ai aussi modifié tes autres messages ;) Pense y par toi même désormais

par laplumaencre » 02 août 2006, 13:24

je savais pas le premier message a ete deplacé donc surement reformater correctement, bref sinon merci de ton aide.

par albat » 02 août 2006, 12:26

Pourquoi n'utilises-tu plus les balises
 pour mettre en forme tes extraits de code ? :shock:

par laplumaencre » 02 août 2006, 11:25

Voici mon dernier code avec lequel j'ai enfin une valeur ds "value" de <OPTION> donc le probleme provient maintenant du javascript qui ne recupère pas ce value pour la condition if CODE :
Type de cordon :            
<select name="type_cordon" onChange="afficher(this)">
<?php $connexion=mysql_connect("$hostname_dbprotect","$username_dbprotect","$password_dbprotect") or die("<p>Echec de connexion!");
mysql_select_db("$database_dbprotect", $connexion) or die ("<p>Echec de connexion à la base de donnée!");
$SQL5 = "SELECT id_menu,libelle FROM menu_deroulant WHERE id_menu='type_cordon'";
$res5 = mysql_query($SQL5);
[color=darkred]$value=0;[/color]
while ($val5=mysql_fetch_array($res5) ) {
echo '<option value="'.[color=darkred]$value[/color].'">'.$val5['libelle'].'</option>\n';
[color=darkred]$value++;[/color]
}
?>
</select>

<input type="text" id="afficheur" size="15" style="visibility:hidden">

<SCRIPT language="javascript">
function afficher(objet) {
	if (objet.value==3) {
		document.getElementById["afficheur"].style.visibility="visible";
	} else {
		document.getElementById["afficheur"].style.visibility="hidden";
	}
}
</SCRIPT>

par laplumaencre » 02 août 2006, 11:07

voici mon code apres changement mais fonctionne tjs pas :-((
*Type de cordon :           
<select name="type_cordon" onChange="afficher(this)">
<?php $connexion=mysql_connect("$hostname_dbprotect","$username_dbprotect","$password_dbprotect") or die("<p>Echec de connexion!");
mysql_select_db("$database_dbprotect", $connexion) or die ("<p>Echec de connexion à la base de donnée!");
$SQL5 = "SELECT id_menu,libelle FROM menu_deroulant WHERE id_menu='type_cordon'";
$res5 = mysql_query($SQL5);
while ($val5=mysql_fetch_array($res5) ) {
echo '<option value=\"'.$var5['libelle'].'">'.$val5['libelle'].'</option>\n';
}
?>
</select>

<input type="text" id="afficheur" size="15" style="visibility:hidden">

<SCRIPT language="javascript">
function afficher(objet) {
	if (objet.value=="MIXTE PRECISER") {
		document.getElementById["afficheur"].style.visibility="visible";
	} else {
		document.getElementById["afficheur"].style.visibility="hidden";
	}
}
</SCRIPT>

par Truc » 02 août 2006, 10:41

Regarde le code source... le contenu de "value" des options. Tu y place une variable $id qui ne doit pas être ce que tu attends.

Pour le javascript évite le "document.all" qui n'est que pour IE, préfère "getElementById" :
document.getElementById["afficheur"].style.visibility="visible";
Affiche les valeurs javascript avec un alert()

Tu peux directement placer l'id sur le champ:
<input type="text" id="preciser" size="15" id="afficheur" style="visibility:hidden" >
Regarde aussi la propriété "dispaly:none" pour rendre le champ invisible mais ausi la lace qu'il occupe. Atoi de voir ce qui se présente le mieux.

par Truc » 02 août 2006, 10:35

Modération : Il n'y a pas de PHP5 dans ce code et le souci est du coté Javascript pourquoi poster en PHP5 ?

Déménagement dans le Forum approprié.

Liste déroulante qui agit sur zone de texte hidden/visible

par laplumaencre » 02 août 2006, 09:04

Bonjour a tous !!
J'ai un probleme avec mon code, il marche pas, je veux que lorsque l'utilisateur utilise la liste deroulante et choisi "MIXTE PRECISER" ds la liste, une zone de texte apparaisse a coté. a savoir que mes liste deroulante sont alimenté via une base de donnée , ce qui complique le tous voici mon code qui marche pas (les listes deroulantes sont bien remplit mais ne font pas apparaitre une zone de texte suivant choix préciser). HELP URGENT je suis en stage et je suis bloqué depuis plusieur jours la dessus, j'avancve plus...merci a tous ceux qui veulent bien me sortir de là :-)
*Type de cordon :            
<select name="type_cordon" onChange="afficher(this)">
<?php $connexion=mysql_connect("$hostname_dbprotect","$username_dbprotect","$password_dbprotect") or die("<p>Echec de connexion!");
mysql_select_db("$database_dbprotect", $connexion) or die ("<p>Echec de connexion à la base de donnée!");
$SQL5 = "SELECT id_menu,libelle FROM menu_deroulant WHERE id_menu='type_cordon'";
$res5 = mysql_query($SQL5);
while ($val5=mysql_fetch_array($res5) ) {
$id=$var5;
echo '<option value=\"'.$id.'">'.$val5['libelle'].'</option>\n';
}
?>
</select>

<div id="afficheur" style="visibility:hidden">
<input type="text" id="preciser" size="15">
</div>

<SCRIPT language="javascript">
function afficher(objet) {
	if (objet.value=="MIXTE PRECISER") {
		document.all["afficheur"].style.visibility="visible";
	} else {
		document.all["afficheur"].style.visibility="hidden";
	}
}
</SCRIPT>