Select Javascript PHP

molasson Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -  
molasson Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis entrain de réaliser un formulaire et je suis confronté à un problème.

Je vous explique, je voudrais que suivant le champ que l'on choisi dans 2 select, un autre select soit modifié directement. Jusque là pas de souci avec onchange. Le problème est que comme le 3ème formulaire qui doit être appelé fait appel à une base de donnée mysql pour être changé, il faudrait que suivant le onchange, on aille chercher les informations dans une autre table.

Un p'tit bout de code pour se rendre compte :

Le javascript
<script type="text/javascript">
var client_choisi = ('bcf');
var type_choisi = ('ecran');
var modeles = client_choisi+'_'+type_choisi;
function choix_client(){
	client_choisi = document.getElementById('client').options[client.selectedIndex].value;
	afficher_modeles();
}
function choix_type(){
	type_choisi = document.getElementById('type').options[type.selectedIndex].value;
	afficher_modeles();
}
function afficher_modeles(){
	modeles = client_choisi+'_'+type_choisi;
}
</script>


Le 3ème formulaire
<select name="modele" id="modele">
    <?php
		$reponse = $bdd->query('SELECT type FROM bcf');
		while ($donnees = $reponse->fetch()){
	?>
        <option value="<?php echo $donnees['modele'];?>"><?php echo $donnees['modele'];?></option>
    <?php
		}
	?>
   	</select>
A voir également:

5 réponses

dreustounet Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,
Essaye en plaçant un if dans ton 3ème formulaire contenant le PHP, tu auras la possibilité de traiter les cas différents
0
molasson Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
Tout d'abord merci pour ta réponse =)

J'y ai penser mais il me faudrait quelque chose d'un peu plus dynamique car il y a beaucoup de formulaire différent et ça serait assez "sale" et long de faire comme ça.

Le top serait de changer pouvoir introduire la variables javascript dans la requête SQL, mais ça ...

Une idée ?
0
dreustounet Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   3
 
Si plusieurs formulaires découlent d'une même selection l'utilisation réorganise l'ensemble et utilise un switch par exemple la page formulaire1.php correspond a un formulaire etc...

switch (condition) {

case ( CHOIX SELECTIONNER) : include ('FORMULAIRE SELECTIONNER');
...

J'espère que l'exemple est clair, cette solution est simpliste mais cependant très efficace je pense
0
molasson Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
C'est une bonne idée mais il faudrait faire un switch en javascript pour que je puisse faire la condition avec les variables javascript.

J'ai essayé comme ça, mais ça n'est pas concluent :

<select name="modele" id="modele">
    <script language="javascript">
	switch (modeles) {
 	case 'bcf_pc':
	</script>
    <?php
		$reponse = $bdd->query("SELECT * FROM bcf WHERE type='pc'");
		while ($donnees = $reponse->fetch()){
	?>
        <option value="<?php echo $donnees['modele'];?>"><?php echo $donnees['modele'];?></option>
    <?php
		}
	?>
	<script language="javascript">
	;
	break;
 	default:
	</script>
    <?php
		$reponse = $bdd->query("SELECT * FROM <script>document.write(client_choisi);</script> WHERE type='<script>document.write(type_choisi);</script>'");
		while ($donnees = $reponse->fetch()){
	?>
        <option value="<?php echo $donnees['modele'];?>"><?php echo $donnees['modele'];?></option>
    <?php
		}
	?>
	<script language="javascript">
	;
	break;
}
    </script>
   	</select>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
molasson Messages postés 65 Date d'inscription   Statut Membre Dernière intervention   4
 
ça avance, j'ai changé un peu de stratégie.

function afficher_modeles(){
	modeles = client_choisi+'_'+type_choisi;
	switch (modeles) {
		case 'bcf_ecran':
		<?php $client = 'bcf'; $type = 'ecran';?>;
		break;
		case 'bcf_pc':
		<?php $client = 'bcf'; $type = 'pc';?>;
		break;
		case 'bcf_imprimente':
		<?php $client = 'bcf'; $type = 'imprimente';?>;
		break;
		case 'bcf_laptop':
		<?php $client = 'bcf'; $type = 'laptop';?>;
		break;
		default: 
		<?php $client = 'bcf'; $type = 'ecran';?>;
		break;
	}
}


<select name="modele" id="modele">
    <?php
		$reponse = $bdd->query('SELECT * FROM ' . $client . ' WHERE type="' . $type . '"');
		while ($donnees = $reponse->fetch()){
	?>
        <option value="<?php echo $donnees['modele'];?>"><?php echo $donnees['modele'];?></option>
    <?php
		}
	?>
</select>


Il faudrait trouvé un moyen pour que le query('SELECT * FROM ' . $client . ' WHERE type="' . $type . '"'); soit remis à jours si on change de client où de type ... Une idée ? =)
0