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 11/01/2011, 16h19   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 1
Points : 1
Par défaut Récupération des données d'une liste déroulante

Bonjour,

Mon problème peut vous paraître très simple: Dans un formulaire, je fais appel à un menu déroulant dynamique faisant appel une table de codes postaux et villes. Je veux simplement récupérer les données sélectionnées dans ma liste (code postal ('vil_cp') et localité('vil_nom') et les enregistrer dans une autre table lors de la validation de mon formulaire.

Items apparaissant dans mon menu déroulant:
Code :
1
2
 
<option value="<?php echo $row_Recordset1['vil_id']?>"><?php echo $row_Recordset1['vil_cp']?> <?php echo $row_Recordset1['vil_nom']?></option>
Code d'enregistrement:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1"))
{
 
  $insertSQL = sprintf("INSERT INTO annonceur (mailAnnonceur, nomAnnonceur, prenomAnnonceur, adresseAnnonceur, cpAnnonceur, localiteAnnonceur, paysAnnonceur, telAnnonceur, mpAnnonceur, dateinscription, IDcategorie, `check`) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['mailAnnonceur'], "text"),
                       GetSQLValueString($_POST['nomAnnonceur'], "text"),
                       GetSQLValueString($_POST['prenomAnnonceur'], "text"),
                       GetSQLValueString($_POST['adresseAnnonceur'], "text"),
                       GetSQLValueString($_POST['cpAnnonceur'], "text"),
                       GetSQLValueString($_POST['vil_nom'],"text"),
                       GetSQLValueString($_POST['paysAnnonceur'], "text"),
                       GetSQLValueString($_POST['telAnnonceur'], "text"),
                       GetSQLValueString($_POST['mpAnnonceur'], "text"),
                       'NOW()',
                       GetSQLValueString($_POST['IDcategorie'], "int"),
                       GetSQLValueString(isset($_POST['check']) ? "true" : "", "defined","'Y'","'N'"));
 
  mysql_select_db($database_rsimmo, $rsimmo);
  $Result1 = mysql_query($insertSQL, $rsimmo) or die(mysql_error());
}
DoubleZeroCed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 17h16   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Et quel est ton problème ?
qu'obtiens-tu avec ton code actuel ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 17h20   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 1
Points : 1
Les valeurs de 'code postal' et 'localité' ne s'enregistrent pas dans ma 2ème table lorsque je valide.

En gros, je veux "copier" les données 'code postal' et 'localité' de ma table 1 (que je selectionne dans mon menu déroulant) vers les champs 'code postal' et 'localité' de ma table 2
DoubleZeroCed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 18h19   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ces enregistrements peuvent être relationnels ; c'est à dire que tu n'enregistres pas le code postal et le nom de la ville dans la table annonceur mais seulement l'id de reference de l'autre table.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 18h22   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

dans ton exemple, tu récupères en retour de formulaire la valeur de l'id correspondant à l'enregistrement dont tu veux le CP et la ville.

donc il faut que tu récupères ces informations avant de faire l'enregistrement dans la seconde table. Ce qui nécessite une requête SQL au préalable.
L'inconvénient : une perte de performance.

Une autre solution consisterait à mettre ces valeurs dans l'attribut option de ton select en les concaténant avec un séparateur (ex: 75000|Paris ) puis d'extraire ces valeurs lors de la phase d'insertion dans la seconde table, avec la fonction explode par exemple.
Inconvénient: c'est pas bien propre...

j'opterais donc pour la première solution.
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root 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 19h37.


 
 
 
 
Partenaires

Hébergement Web