probelem requete et conditions
Posté : 02 avr. 2012, 11:00
Bonjour à tous,
j'ai un soucis de requêtes. en fait grâce au javascript mon utilisateur utilise un select pour afficher un nombre de champs de formulaires. voici la structure.
[javascript]
<select id="nbadresse" onChange="document.getElementById('adresses').innerHTML = document.getElementById(this.value).innerHTML;" name="nbadresse">
<option value="a0">0</option>
<option value="a1">1</option>
<option value="a2">2</option>
<option value="a3">3</option>
<option value="a4">4</option>
<option value="a5">5</option>
</select>
[/javascript]
en fonction de la selection,
chaque div apparait, à savoir si on clique sur l'option 1 le div associé au a1 apparait.
jusque la il n'y a pas de problemes.
J'ai donc créé plusieurs formulaires.
qui sont nommés différement,
exemple pour le div a1:
[javascript]
<div id="a1" style="display:none;"><table> <tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 1 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse1"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="a1titre_adresse1">
<label for="rue_adresse1"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="a1rue_adresse1">
<label for="complement1_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a1complement1_adresse1">
<label for="a1complement2_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a1complement2_adresse1">
<label for="a1code_postal_adresse1"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="a1code_postal_adresse1">
<label for="ville_adresse1"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="a1ville_adresse1">
<label for="pays_adresse1"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="a1pays_adresse1">
<option value="CA">Canada</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabwe</option>
</select>
</p>
</td>
</tr>
</table></div>
[/javascript]
j'ai abrégé le select pays ^^
mais a titre d'exemple voici le div 2 pour que vous voyiez comment j'ai nommé les champs selon cette structure:
[javascript]
<div id="a2" style="display:none;"><table><tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 1 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse1"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="a2titre_adresse1"><label for="rue_adresse1"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="a2rue_adresse1">
<label for="complement1_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b1complement1_adresse1">
<label for="complement2_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a2complement2_adresse1">
<label for="code_postal_adresse1"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="a2code_postal_adresse1">
<label for="ville_adresse1"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="a2ville_adresse1">
<label for="pays_adresse1"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="a2pays_adresse1">
<option value="CA">Canada</option>
<option value="US">United States of America</option>
<option value="GB">United Kingdom (Great Britain)</option>
<option value="AU">Australia</option>
</select>
</p>
</td>
</tr></table>
<table><tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 2 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse2"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="b2titre_adresse2"><label for="rue_adresse2"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="b2rue_adresse2">
<label for="complement1_adresse2"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b2complement1_adresse2">
<label for="complement2_adresse2"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b2complement2_adresse2">
<label for="code_postal_adresse2"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="b2code_postal_adresse2">
<label for="ville_adresse2"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="b2ville_adresse2">
<label for="pays_adresse2"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="b2pays_adresse2">
<option value="CA">Canada</option>
<option value="US">United States of America</option>
<option value="GB">United Kingdom (Great Britain)</option>
<option value="ZW">Zimbabwe</option>
</select>
</p>
</td>
</tr></table></div>
[/javascript]
Pour l'inclusion dans ma bdd j'ai fait ceci:
Edit: la coloration syntaxique X(HTML) n'a pas fonctionnée
j'ai un soucis de requêtes. en fait grâce au javascript mon utilisateur utilise un select pour afficher un nombre de champs de formulaires. voici la structure.
[javascript]
<select id="nbadresse" onChange="document.getElementById('adresses').innerHTML = document.getElementById(this.value).innerHTML;" name="nbadresse">
<option value="a0">0</option>
<option value="a1">1</option>
<option value="a2">2</option>
<option value="a3">3</option>
<option value="a4">4</option>
<option value="a5">5</option>
</select>
[/javascript]
en fonction de la selection,
chaque div apparait, à savoir si on clique sur l'option 1 le div associé au a1 apparait.
jusque la il n'y a pas de problemes.
J'ai donc créé plusieurs formulaires.
qui sont nommés différement,
exemple pour le div a1:
[javascript]
<div id="a1" style="display:none;"><table> <tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 1 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse1"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="a1titre_adresse1">
<label for="rue_adresse1"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="a1rue_adresse1">
<label for="complement1_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a1complement1_adresse1">
<label for="a1complement2_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a1complement2_adresse1">
<label for="a1code_postal_adresse1"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="a1code_postal_adresse1">
<label for="ville_adresse1"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="a1ville_adresse1">
<label for="pays_adresse1"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="a1pays_adresse1">
<option value="CA">Canada</option>
<option value="ZM">Zambia</option>
<option value="ZW">Zimbabwe</option>
</select>
</p>
</td>
</tr>
</table></div>
[/javascript]
j'ai abrégé le select pays ^^
mais a titre d'exemple voici le div 2 pour que vous voyiez comment j'ai nommé les champs selon cette structure:
[javascript]
<div id="a2" style="display:none;"><table><tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 1 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse1"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="a2titre_adresse1"><label for="rue_adresse1"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="a2rue_adresse1">
<label for="complement1_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b1complement1_adresse1">
<label for="complement2_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="a2complement2_adresse1">
<label for="code_postal_adresse1"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="a2code_postal_adresse1">
<label for="ville_adresse1"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="a2ville_adresse1">
<label for="pays_adresse1"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="a2pays_adresse1">
<option value="CA">Canada</option>
<option value="US">United States of America</option>
<option value="GB">United Kingdom (Great Britain)</option>
<option value="AU">Australia</option>
</select>
</p>
</td>
</tr></table>
<table><tr>
<td>
<img src="images/home.png" width="128" height="128">
</td>
<td>
<p align="center"><font size="2" face="Verdana"><b>. : : Autre Adresse 2 : : .</b></font></p>
<br>
<br>
<p>
<label for="titre_adresse2"><font size="2" face="Verdana"><b>Libellé de l'adresse</font></b></label>
<input type="text" name="b2titre_adresse2"><label for="rue_adresse2"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="b2rue_adresse2">
<label for="complement1_adresse2"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b2complement1_adresse2">
<label for="complement2_adresse2"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="b2complement2_adresse2">
<label for="code_postal_adresse2"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="b2code_postal_adresse2">
<label for="ville_adresse2"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="b2ville_adresse2">
<label for="pays_adresse2"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="b2pays_adresse2">
<option value="CA">Canada</option>
<option value="US">United States of America</option>
<option value="GB">United Kingdom (Great Britain)</option>
<option value="ZW">Zimbabwe</option>
</select>
</p>
</td>
</tr></table></div>
[/javascript]
Pour l'inclusion dans ma bdd j'ai fait ceci:
<?php if ($_POST['nbadresse']=='a1') { ?>
<?php
$sql = 'UPDATE client
SET titre_adresse1 = "'.mysql_real_escape_string($_POST['a1titre_adresse1']).'",
rue_adresse1 = "'.mysql_real_escape_string($_POST['a1rue_adresse1']).'",
complement1_adresse1 = "'.mysql_real_escape_string($_POST['a1complement1_adresse1']).'",
complement2_adresse1 = "'.mysql_real_escape_string($_POST['a1complement2_adresse1']).'",
code_postal_adresse1 = "'.mysql_real_escape_string($_POST['a1code_postal_adresse1']).'",
ville_adresse1 = "'.mysql_real_escape_string($_POST['a1ville_adresse1']).'",
pays_adresse1 = "'.mysql_real_escape_string($_POST['a1pays_adresse1']).'"
WHERE code_client= "'.mysql_real_escape_string($_POST['code_client']).'"
';
mysql_query($sql) or die(__LINE__.mysql_error().$sql);
echo "Les adresses supplémentaires ont bien été enregistrées";
?>
<?php } ?>
<?php if ($_POST['nbadresse']=='a2') { ?>
<?php
$sql = 'UPDATE client
SET titre_adresse1 = "'.mysql_real_escape_string($_POST['a2titre_adresse1']).'",
rue_adresse1 = "'.mysql_real_escape_string($_POST['a2rue_adresse1']).'",
complement1_adresse1 = "'.mysql_real_escape_string($_POST['a2complement1_adresse1']).'",
complement2_adresse1 = "'.mysql_real_escape_string($_POST['a2complement2_adresse1']).'",
code_postal_adresse1 = "'.mysql_real_escape_string($_POST['a2code_postal_adresse1']).'",
ville_adresse1 = "'.mysql_real_escape_string($_POST['a2ville_adresse1']).'",
pays_adresse1 = "'.mysql_real_escape_string($_POST['a2pays_adresse1']).'",
titre_adresse2 = "'.mysql_real_escape_string($_POST['b2titre_adresse2']).'",
rue_adresse2 = "'.mysql_real_escape_string($_POST['b2rue_adresse2']).'",
complement1_adresse2 = "'.mysql_real_escape_string($_POST['b2complement1_adresse2']).'",
complement2_adresse2 = "'.mysql_real_escape_string($_POST['b2complement2_adresse2']).'",
code_postal_adresse2 = "'.mysql_real_escape_string($_POST['b2code_postal_adresse2']).'",
ville_adresse2 = "'.mysql_real_escape_string($_POST['b2ville_adresse2']).'",
pays_adresse2 = "'.mysql_real_escape_string($_POST['b2pays_adresse2']).'"
WHERE code_client= "'.mysql_real_escape_string($_POST['code_client']).'"
';
mysql_query($sql) or die(__LINE__.mysql_error().$sql);
echo "Les adresses supplémentaires ont bien été enregistrées";
?>
le soucis c'est qu'il n'enregistre rien sauf le pays par défaut. j'ai pourtant veillé scrupuleusement a ce que les champs n'aient pas le meme nom. je ne sais pas comment résoudre le soucis.Edit: la coloration syntaxique X(HTML) n'a pas fonctionnée