Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2011, 14h22   #1
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
Par défaut Passer les valeurs de 2 dropbox dans un input type=text

Bonjour,

J'ai 2 dropbox par exemple pays et villes.
Quand j'ai choisi le pays, j'appuie sur un bouton et j'ai les villes listées dans le 2me dropbox.
Jusque lá je l'ai fait ca marche.

Maintenant ce que je voudrais c'est appuyer sur un deuxiéme bouton qui m'écrive ces valeurs dans un input type=text.

J'ai essayé de plusieurs facons sans succés jusqu'á maintenant, voila pourquoi j'écris ici, si vous pouviez m'indiquer oú je dois chercher!

Je mets le code actuel sur lequel je travaille ici:
C'est le case 'Tilfoeje Arbejdsomraader' qui ne fait pas ce que je veux!
Code :
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
 
<?php
global $wpdb;
$division = $_POST["division"];
$department = $_POST["department"];
$workarea_field = '';
?>
<form method="post" action="<?php echo $PHP_SELF;?>">
	<label for="division">Hovedafdeling:  
	<select id="division" name="division">
	<option value="">Vælg en hovedafdeling...</option>
	<?php 
	$divisioner = $wpdb->get_results( $wpdb->prepare ("Select * from " . $wpdb->prefix . "sr_division"));
		foreach ($divisioner as $enkelte_division) {
			echo ' <option value="'.$enkelte_division-> division.'" '. ($enkelte_division-> division ==$_POST["division"]?"selected":"").'> '
			.$enkelte_division-> division.'</option>';
		}	
	?>
	</select></label></p>	
	<input name="afdelinger" type="submit" value="Vis Underafdelinger"/>
	<?php
 
	switch ($_POST['afdelinger'])
   {
	case 'Vis Underafdelinger':
		$query_department = $wpdb->get_results( $wpdb->prepare ("SELECT department FROM " . $wpdb->prefix . "sr_department 
		INNER JOIN " . $wpdb->prefix . "sr_division ON " . $wpdb->prefix . "sr_department.division_id =" .$wpdb->prefix . "sr_division.id_division 
		WHERE ". $wpdb->prefix ."sr_division.division = '" . $division . "';"));
		echo '<label for="department">Underafdeling:  <select id="department" name="department"> <option value="">Vælg en underafdeling...</option>';
			foreach ($query_department as $query_enkelte_department) {
				echo ' <option value="'.$query_enkelte_department-> department.'" '. ($query_enkelte_department-> department ==$_POST["department"]?"selected":"").'> '
				.$query_enkelte_department-> department.'</option>';
			}
		?>
		</select></label></p>
		<?php	
	break;
 
	case 'Tilfoeje Arbejdsomraader':
		echo $workarea_field . ' er ' . $division . ' og ' . $department;
		$workarea_field = $workarea_field . $division . '/' . $department . ' ';
	break;	
	}
 
	?>
	<label for="workarea"><input name="afdelinger" type="submit" value="Tilfoeje Arbejdsomraader:" /> <input type="text" name="workarea_field" 
	value=" <?php echo $workarea_field ?>" size="100" /> </label> </p>	
</form>
__________________
Sincérement
Jean-Christophe
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 15h20   #2
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
J'ai trouvé une réponse á ma question (une erreur de frappe), mais il me manque encore un bout de réponse:
La variable $workarea_field se remet á zéro (lisez: '') quand j'appuie sur le bouton 'Vis Underafdelinger' alors que je voudrais qu'il s'en rappelle.
Voila pourquoi au début de ma fiche, j'écris: $workarea_field=''
et ensuite, quand on clique sur le bouton 'Tilfoeje Arbejdsomraader': $workarea_field = $workarea_field . ...

C'est comme ci le fait d'appuyer sur un autre bouton vire les variables du loop précédent.

Avez vous une idée de ce qui ne va pas?
Oú dois je me documenter pour savoir comment je peux protéger ma variable?
__________________
Sincérement
Jean-Christophe
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 16h03   #3
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Salut,

Pour commencer je me suis permis de reprendre ton code afin de le rendre plus lisible, sauf boulette de ma part je pense que c'est parfaitement équivalent :
Code :
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
<?php
 
global $wpdb;
 
$division   = $_POST['division'];
$department = $_POST['department'];
$workarea_field = '';
 
 
### DIVISIONER ###
$sql = "SELECT * FROM {$wpdb->prefix}sr_division;";
$divisioner = $wpdb->get_results($wpdb->prepare($sql));
 
foreach ($divisioner as $enkelte_division) {
   $selected = ($enkelte_division->division == $division) ? 'selected' : NULL;
   $options[] = "<option value=\"{$enkelte_division->division}\" $selected>{$enkelte_division->division}</option>";
}
$divisionerOptions = implode("\n", $options);
$options = array();
 
 
### AFDELINGER ###
switch($_POST['afdelinger']) {
 
   case 'Vis Underafdelinger':
      $sql = <<<SQL
SELECT department FROM {$wpdb->prefix}sr_department 
   INNER JOIN {$wpdb->prefix}sr_division ON {$wpdb->prefix}sr_department.division_id = {$wpdb->prefix}sr_division.id_division 
WHERE {$wpdb->prefix}sr_division.division = '$division';
SQL;
      $query_department = $wpdb->get_results($wpdb->prepare($sql));
 
      foreach ($query_department as $query_enkelte_department) {
         $selected = ($query_enkelte_department->department == $department) ? 'selected' : NULL;
         $options[] = "<option value=\"{$query_enkelte_department->department}\" $selected>{$query_enkelte_department-> department}</option>";
      }
      $afdelingerOptions = implode("\n", $options);
 
      $afdelingerRender = <<<SC
<label for="department">Underafdeling:  
   <select id="department" name="department">
      <option value="">Vælg en underafdeling...</option>
      $afdelingerOptions
   </select>
</label>
</p>
SC;
   break;
 
 
   case 'Tilfoeje Arbejdsomraader':
      $afdelingerRender = "$workarea_field er $division og $department";
      $workarea_field   = "$workarea_field$division/$department ";
   break;
}
 
 
 
### FINAL RENDER ###
echo <<<SC
<form method="post" action="$PHP_SELF">
   <label for="division">Hovedafdeling:  
      <select id="division" name="division">
         <option value="">Vælg en hovedafdeling...</option>
         $divisionerOptions
      </select>
   </label>
   </p>
   <input name="afdelinger" type="submit" value="Vis Underafdelinger" />
   $afdelingerRender
   <label for="workarea">
      <input name="afdelinger" type="submit" value="Tilfoeje Arbejdsomraader:" />
      <input type="text" name="workarea_field" value="$workarea_field" size="100" />
   </label>
   </p>
</form>
SC;
 
?>
Ensuite au niveau des problèmes : tu as des </p> qui se balladent tous seuls dans ton formulaire (lignes de mon code : 46 68 75).

Tu as mis dans le form
Code :
<input name="afdelinger" type="submit" value="Tilfoeje Arbejdsomraader:" />
Et dans le code du switch : case 'Tilfoeje Arbejdsomraader' sans les deux-points.

Et si tu remplace l'initialisation du début : par
Code :
$workarea_field = $_POST['workarea_field'];
cela ne marche toujours pas ?
Bon code
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/02/2011, 09h15   #4
Membre régulier
 
Inscription : mars 2002
Messages : 227
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : mars 2002
Messages : 227
Points : 91
Points : 91
Envoyer un message via ICQ à jean christophe
Merci pour ta réponse Xysyo.

C'était ca: "$workarea_field = $_POST['workarea_field'];"

Super!
Bon week end.
__________________
Sincérement
Jean-Christophe
jean christophe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h16.


 
 
 
 
Partenaires

Hébergement Web