Page 1 sur 1

probelem requete et conditions

Posté : 02 avr. 2012, 11:00
par piotrowski-s
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&nbsp;: : .</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

Re: probelem requete et conditions

Posté : 02 avr. 2012, 11:59
par xTG
Debug avec var_dump($_POST) pour vérifier ce que tu reçois réellement.
C'est encore le meilleur moyen de trouver les erreurs.

Re: probelem requete et conditions

Posté : 02 avr. 2012, 14:25
par piotrowski-s
Bah actuellement je ne sais pas mais les éléments sont postés au mauvais endroit
 'a5titre_adresse1' => string '17 AV DE l'ABBAYE' (length=17)
  'a5rue_adresse1' => string '17 AV DE l'ABBAYE' (length=17)
  'a5complement1_adresse1' => string '17 AV DE l'ABBAYE' (length=17)
  'a5complement2_adresse1' => string '17 AV DE l'ABBAYE' (length=17)
  'a5code_postal_adresse1' => string '28210' (length=5)
  'a5ville_adresse1' => string 'COULOMBS' (length=8)
  'a5pays_adresse1' => string 'CA' (length=2)
  'b5titre_adresse2' => string '17 AV DE l'ABBAYE' (length=17)
  'b5rue_adresse2' => string '17 AV DE l'ABBAYE' (length=17)
  'b5complement1_adresse2' => string '17 AV DE l'ABBAYE' (length=17)
  'b5complement2_adresse2' => string '17 AV DE l'ABBAYE' (length=17)
  'b5code_postal_adresse2' => string '28210' (length=5)
  'b5ville_adresse2' => string 'COULOMBS' (length=8)
  'b5pays_adresse2' => string 'CA' (length=2)
  'c5titre_adresse3' => string '17 AV DE l'ABBAYE' (length=17)
  'c5rue_adresse3' => string '17 AV DE l'ABBAYE' (length=17)
  'c5complement1_adresse3' => string '17 AV DE l'ABBAYE' (length=17)
  'c5complement2_adresse3' => string '17 AV DE l'ABBAYE' (length=17)
  'c5code_postal_adresse3' => string '28210' (length=5)
  'c5ville_adresse3' => string 'COULOMBS' (length=8)
  'c5pays_adresse3' => string 'CA' (length=2)
  'd5titre_adresse4' => string '17 AV DE l'ABBAYE' (length=17)
  'd5rue_adresse4' => string '17 AV DE l'ABBAYE' (length=17)

Re: probelem requete et conditions

Posté : 02 avr. 2012, 14:26
par piotrowski-s
du coup rien n'est inséré dans ma requête

Re: probelem requete et conditions

Posté : 02 avr. 2012, 14:45
par piotrowski-s
J'aimerais savoir si vous pensez que ça serait pa smieux de créer une table a part, mais du coup je restes avec mon même problème car si je souhaites créer un array, je ne sais pas comment procéder car je génère le tout ej javascript. si vous aviez une brève pour m'aider d'avance merci.

Re: probelem requete et conditions

Posté : 02 avr. 2012, 15:16
par piotrowski-s
j'ai changé ma requête pour insérer les adresses dans une autre table mais rie n’y fait, il n’insère que les données qu'il veux....

Re: probelem requete et conditions

Posté : 02 avr. 2012, 15:24
par piotrowski-s
en fait le soucisz c'est qu'il récupère que le derniere option du select. vous savez s'il y a un moyen en changeant le name du select ? d'avance merci.

Re: probelem requete et conditions

Posté : 02 avr. 2012, 15:55
par xTG
Au vue du dump que tu nous montres ton select ne se trouve pas à l'intérieur des balises form et il n'est pas transmis.
Enfin je m'intérroge sur ton action JS sur le onchange... Tu dupliques du contenu avec ça, c'est pas joli et c'est surement ça qui plante.
Le principe n'est pas de recopier les éléments à la volée (ou alors il faut qu'il n'y ai qu'eux sur la page et que le contenu à afficher vienne d'une variable javascript et non du DOM) mais d'afficher et de cacher des divs.

Re: probelem requete et conditions

Posté : 02 avr. 2012, 16:00
par piotrowski-s
si, mais selects sont bien dans la balise form [javascript] <form id="SignupForm" id="generateur" action="create-client2.php" method="post">
<fieldset>
<legend>Informations générales</legend>
<label for="code_client"><b><font size="2" face="Verdana">Code Client</font></b></label>
<input name="code_client" id="code_client" type="text" / maxlength="4" value="">
<label for="categorie"><b><font size="2" face="Verdana"> Catégorie</font></b></label>
<input type="radio" id="categorie" name="categorie" value="personne_morale" /> Personne morale
<input type="radio" id="categorie" name="categorie" value="personne_physique" /> Personne physique
<label for="nbadresse"><b><font size="2" face="Verdana">Nombre d'adresse(s) supplémentaires</font></b></label>
<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>
<label for="nbcontact"><b><font size="2" face="Verdana">Nombre de contact(s) supplémentaires</font></b></label>
<select id="nbcontact" name="nbcontact" onChange="document.getElementById('contacts').innerHTML = document.getElementById(this.value).innerHTML;">
<option value="c0">0</option>
<option value="c1">1</option>
<option value="c2">2</option>
<option value="c3">3</option>
<option value="c4">4</option>
<option value="c5">5</option>
</select>
<label for="date_creation"><b><font size="2" face="Verdana">Date de Création</font></b></label>[/javascript]

Re: probelem requete et conditions

Posté : 02 avr. 2012, 17:25
par piotrowski-s
je penses aqu'en faisant cela je suis sur la bonne voie vous en pensez quoi [javascript]<input type="text" name="adresse[4][titre]">
<label for="rue_adresse1"><font size="2" face="Verdana"><b>Rue</font></b></label>
<input type="text" name="adresse[4][rue]">
<label for="complement1_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="adresse[4][complement]">
<label for="complement2_adresse1"><font size="2" face="Verdana"><b>Complément</font></b></label>
<input type="text" name="adresse[4][complement2]">
<label for="code_postal_adresse1"><font size="2" face="Verdana"><b>Code Postal</font></b></label>
<input type="text" name="adresse[4][code_postal]">
<label for="ville_adresse1"><font size="2" face="Verdana"><b>Ville</font></b></label>
<input type="text" name="adresse[4][ville]">
<label for="pays_adresse1"><b><font size="2" face="Verdana">Pays</font></b></label>
<select name="adresse[4][pays]">[/javascript]

Re: probelem requete et conditions

Posté : 02 avr. 2012, 19:39
par xTG
Fondamentalement ça change rien, juste la façon de présenter les données. C'est pas un souci de name mais plutôt de javascript qui va jouer avec innerHTML et faire n'importe quoi selon moi.
Regardes l'évolution du DOM avec l'extension Firebug par exemple.

Re: probelem requete et conditions

Posté : 03 avr. 2012, 09:11
par piotrowski-s
j'ai rajouté des inputs de type hiddenc et des arrays pour les adresses mais je bug toujours...

Re: probelem requete et conditions

Posté : 03 avr. 2012, 10:01
par xTG
Je ne compte plus le nombre de fois où je te dis que le problème est du côté de ton code javascript...

Re: probelem requete et conditions

Posté : 03 avr. 2012, 11:09
par piotrowski-s
bon je vais arrêter de me prendre la tête et tout faire en php avec des array ...merci pour l'aide mais c'est trop prise de tête le javascript pour moi ^^