IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[PHP-JS] affiche selon liste déroulante


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut [PHP-JS] affiche selon liste déroulante
    bonjour,
    je fait une application en php/mysql
    j'ai un formulaire ou je voudrai que après le choix dans une liste déroulante le reste du formulaire se remplisse
    ma liste déroulant est remplie par une requete
    j'ai cherché sur internet mais je n'ai trouvé que la solution javascript avec le onchange cependant je ne vois pas comment cela me permettrai de remplir la fin de mon formulaire avec une requete

  2. #2
    Membre expérimenté
    Avatar de Linaa
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    987
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 987
    Points : 1 309
    Points
    1 309
    Par défaut
    Oui, la solution du JavaScript permet de ne pas recharger la page.

    Avec une requete, tu peux placer un bouton submit près de ta liste deroulante.
    Dès que l'utilisateur selectionne un element, il faudra qu'il valide avec le bouton.
    Et en fonction de l'element selectionné, tu remplis les autres champs de ton formulaire.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut affichage selon liste deroulante
    mais est qu'il est possible de la faire sans bouton

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Bonjour,

    oui avec un onchange.

    En gros, sur le select vous mettez quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <select name="liste" onchange="RemplirFormulaire()">
    ...
    Dans la fonction javascript RemplirFormulaire(), on regarde le choix selectionné dans le select, et en fonction on remplit les autres champs comme l'on veut.

    Il faut poster sur le forum javascript si vous avez besoin d'aide pour le codage de cette fonction

    Fred

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut affichage selon liste déroulante
    je croyais kon ne pouvai pas faire de php dans du javascript?

  6. #6
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    Si je peux me permettre, la solution sans bouton est pas pratique.
    C'est un dispositif que j'ai enlevé d'un code pour mettre à la place un bouton.
    Le problème, c'est que les informations qui apparaissaient étaient initialement chargées dans le source, donc extremement lent en cas de nombreuses informations dans la base de données.
    En même temps, c'est le code qui était fait comme ça ...(peut être qu'il y a d'autre solution plus pratique).

    Toutefois, j'ai du conservé le code avant mes modification (avec fonction javascript). Si tu les veux, je peux te les donner, mais ne me demande pas d'explication car je n'ai jamais regardé comment ça fonctionnait.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 116
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par Cell
    je croyais kon ne pouvai pas faire de php dans du javascript?
    Citation Envoyé par fred64
    Dans la fonction javascript RemplirFormulaire(), on regarde le choix selectionné dans le select, et en fonction on remplit les autres champs comme l'on veut.
    Si tu veux plus d'aide poste des portions de ton code

  8. #8
    Membre régulier
    Inscrit en
    Mai 2005
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 172
    Points : 74
    Points
    74
    Par défaut
    C'est dingue quand meme comme le monde est petit ...
    Enfin bref, voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    $users = getAllUsers();
     
    ......
     
     
    <script language="JavaScript">
    obj = -1;
    function showUser(selectObj) {
    	if (obj != -1)
    		obj.style.display = "none";
     
    	id = selectObj.options[selectObj.selectedIndex].value;
    	if (id == -1)
    		return;
     
    	obj = document.getElementById("keywords" + id);
    	obj.style.display = "";
    }
     
    </script>
     
    ......
     
    <table>
    	<tr>
    		<td class="inputDescription"><?=getMLText("user_name")?>:</td>
    		<td>
    			<select onchange="showUser(this)">
    				<option value="-1"><?=getMLText("choose_user")?>
    				<?
    				foreach ($users as $currUser) {
    					if (($currUser->getID() == $settings->_adminID) || ($currUser->getID() == $settings->_guestID))
    						continue;
     
    					print "<option value=\"".$currUser->getID()."\">" . $currUser->getFullName();
    				}
    				?>
    			</select>
    		</td>
    	</tr>
    	<?
    	foreach ($users as $currUser) {
    		if (($currUser->getID() == $settings->_adminID) || ($currUser->getID() == $settings->_guestID))
    			continue;
    	?>
    	<tr id="keywords<?=$currUser->getID()?>" style="display : none;">
    	<td colspan="2">
     
    	<form action="../op/op.UsrMgr.php" method="post" enctype="multipart/form-data" name="form<?print $currUser->getLogin();?>" onsubmit="return checkForm('<?print $currUser->getID();?>');">
    	<input type="Hidden" name="userid" value="<?print $currUser->getID();?>">
    	<input type="Hidden" name="action" value="edituser">
    	<table border="0">
    		<tr>
    			<td colspan="2"><hr size="1" width="100%" color="#000080" noshade></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("user_login");?>:</td>
    			<td class="standardText"><input name="login" value="<?print $currUser->getLogin();?>"></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("password");?>:</td>
    			<td><input type="Password" name="pwd"></td>
    		</tr>
    		<tr>
    			<td class="inputDescription"><?printMLText("confirm_pwd");?>:</td>
    			<td><input type="Password" name="pwdconf"></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("user_name");?>:</td>
    			<td class="standardText"><input name="name" value="<?print $currUser->getFullName();?>"></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("email");?>:</td>
    			<td class="standardText"><input name="email" value="<?print $currUser->getEmail();?>"></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("comment");?>:</td>
    			<td class="standardText"><textarea name="comment" rows="4" cols="30"><?print $currUser->getComment();?></textarea></td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("user_image");?>:</td>
    			<td class="standardText">
    				<?
    					if ($currUser->hasImage())
    						print "<img src=\"".$currUser->getImageURL()."\">";
    					else
    						printMLText("no_user_image");
    				?>
    			</td>
    		</tr>
    		<tr>
    			<td class="inputDescription" valign="top"><?printMLText("new_user_image");?>:</td>
    			<td class="standardText"><input type="file" name="userfile" accept="image/jpeg"></td>
    		</tr>
    		<tr>
    			<td colspan="2"><br><input type="Submit"></td>
    		</tr>
    	</table>
    	</form>
    	<hr size="1" width="80%" color="#000080" noshade>
    	<a class="standardText" href="../op/op.UsrMgr.php?userid=<?print $currUser->getID();?>&action=removeuser"><img src="images/del.gif" width="15" height="15" border="0" align="absmiddle" alt=""> <?printMLText("rm_user");?></a>
     
    	</td>
    	</tr>
    <?  } ?>
    </table>

    La fonction getAllUsers() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    function getAllUsers()
    {
    	GLOBAL $db;
     
    	$queryStr = "SELECT * FROM tblUsers ORDER BY login";
    	$resArr = $db->getResultArray($queryStr);
     
    	if (is_bool($resArr) && $resArr == false)
    		return false;
     
    	$users = array();
     
    	for ($i = 0; $i < count($resArr); $i++)
    		$users[$i] = new User($resArr[$i]["id"], $resArr[$i]["login"], $resArr[$i]["pwd"], $resArr[$i]["fullName"], $resArr[$i]["email"], $resArr[$i]["comment"], $resArr[$i]["isAdmin"]);
     
    	return $users;
    }
    Dans ce que je t'envoie, les informations sont chargées dans le code source lorsque tu entres sur la page.
    Bon bah voila ... tu n'as plus qu'a essayé de décortiquer tout ça. Bonne chance

  9. #9
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 140
    Points : 151
    Points
    151
    Par défaut
    pourquoi pas un bête onChange="submit();" ?

    il y a un chargement en plus, mais pas de bouton et pas le problème des données chargées dans le code source...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    199
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 199
    Points : 87
    Points
    87
    Par défaut affichage selon liste deroulante
    Aurait tu un exemple stp

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2006
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2006
    Messages : 71
    Points : 63
    Points
    63
    Par défaut
    Bonsoir,

    Je réveille ce topic car je suis aujourd'hui confronté au même problème.

    Je souhaite changer le contenu d'un textarea en fonction du choix dans une liste déroulante.
    Il faut donc que j'utilise onchange avec une fonction javascript pour récupérer le selectedIndex mais après ?

Discussions similaires

  1. Afficher une liste déroulante selon critère
    Par David1727 dans le forum Excel
    Réponses: 2
    Dernier message: 29/01/2013, 11h29
  2. Réponses: 1
    Dernier message: 20/11/2007, 16h07
  3. [PHP-JS] Afficher une liste sur la page ?
    Par bzoler dans le forum Langage
    Réponses: 7
    Dernier message: 27/01/2006, 09h41
  4. Réponses: 8
    Dernier message: 28/11/2005, 14h41
  5. [PHP-JS] Lier deux listes déroulantes
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 15/11/2005, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo