IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

recuperer le name d'un select en PHP apres un onsubmit()


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut recuperer le name d'un select en PHP apres un onsubmit()
    Bonjour,

    J'ai un petit soucis PHP/HTML/Javascript
    J'ai 2 listes déroulante, chacune lié à une base de donnée. une liste lié à une base société, une lié à une base contact.
    chaque contacts est dans une société, et chaque sociétés peut avoir plusieurs contacts.
    Je souhaite que lorsque l'utilisateur choisi un contact, seul la société correspondante au contact s'affiche dans la liste déroulante "société". et lorsque l'utilisateur choisi une société, seul les contacts de la société d'affiche dans la liste déroulante "contact".
    donc lorsque l'utilisateur choisi une société, je fais une requête sur la base des contacts, et lorsqu'il choisi un contact, je fait une requête pour ramener la société avec un onsubmit() lorsqu'il a fait son choix.
    mon problème est que je n'arrive pas à savoir ce que l'utilisateur a sélectionné, si c'est un contact ou une société pour exécuter la requête correspondante.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    80
    81
    82
    83
     
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8" />
            <title>Agenda Suivi Client</title>
        </head>
     
        <body>
    	<?php
     
    	<form method="post" action="index.php">
    	<select name="société" onChange="submit()">
    	<option value="">Choisir une société</option>
    	<?php
    		$serverName = "serveurSQL";
    		$connectionInfo = array("Database"=>"Base", "UID"=>"xxx", "PWD"=>"xxx", "CharacterSet" => "UTF-8");
    		$conn = sqlsrv_connect($serverName, $connectionInfo);
    		if($conn === false ) {
    			echo "La connexion n'a pu être établie.<br />";
    			die( print_r(sqlsrv_errors(), true));
    		}
     
    		$sql = "SELECT * FROM BCPCLI";
    		$stmt = sqlsrv_query( $conn, $sql);
    		if( $stmt === false ) {
    			 die( print_r(sqlsrv_errors(), true));
    		}
     
     
    		while($tab=sqlsrv_fetch_array($stmt))
    		{
    			//afficher la société selectionné
    			if ($_POST['société'] == $tab[IDENT]){
    				echo "<option value='".$tab[IDENT]."' selected>".$tab[DESIG]." ".$tab[IDENT]."</option>";
    			}
    			else{
    				echo "<option value='".$tab[IDENT]."'>".$tab[DESIG]." ".$tab[IDENT]."</option>";
    			}
    		}
     
    		sqlsrv_free_stmt($stmt);
     
    	?>
    	</select>
     
     
    	<select name="contact" onChange="submit()">
    	<option value="">Choisir un contact</option>
    	<?php
    		$conn = sqlsrv_connect($serverName, $connectionInfo);
    		if( $conn === false ) {
    			echo "La connexion n'a pu être établie.<br />";
    			die( print_r( sqlsrv_errors(), true));
    		}
     
    		$sql = "SELECT * FROM BCPCONTA";
    		$stmt = sqlsrv_query( $conn, $sql);
    		if( $stmt === false ) {
    			 die( print_r( sqlsrv_errors(), true));
    		}
     
     
    		while($tab=sqlsrv_fetch_array($stmt))
    		{
    			//afficher le contact selectionné
    			if ($_POST['contact'] == $tab[COMPOSANT_IDENT]){
    				echo "<option value='".$tab[COMPOSANT_IDENT]."' selected>".$tab[NOM]." ".$tab[PRENOM]."</option>";
    			}
    			else{
    				echo "<option value='".$tab[COMPOSANT_IDENT]."'>".$tab[NOM]." ".$tab[PRENOM]."</option>";
    			}
     
    		}
     
    		sqlsrv_free_stmt($stmt);
    		sqlsrv_close($conn);
    	?>
    	</select>
    	 <input type="submit" value="ajouter" title="Ajouter" />
    	 </form>
        </body>
    </html>
    Ce qui serait idéal, c'est que suivant si l'utilisateur saisie quelque chose dans la liste société ou la liste contact, je puisse récupérer le name du select qu'il a utilisé.
    Merci d'avance si vous avez une solution (je n'ai rien trouvé après plusieurs heures de recherche...).

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    dans l'idéal, il faut utiliser AJAX.

    + fais une recherche sur "listes liées".

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Malheureusement, je connais encore que trop peu ajax xD Mais je vais faire une recherche, essayer de trouver une solution bien expliqué que je puisse appliquer. Merci pour la piste de recherche!

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    L'AJAX est effectivement pratique.
    Si le problème est uniquement de savoir quelle liste a été modifiée, il suffit d'ajouter un champ caché que la première liste met à 1 sur le onchange, et la deuxième à 2 par exemple. Il suffit alors de lire ce champ pour savoir quelle liste a été utilisée.
    Christophe

    Pensez à mettre quand c'est le cas.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    J'ai en effet passer ma mâtiné à comprendre les listes liées ajax, et je pense que je m'en suis pas mal sorti, j'ai réussis à faire une liste liée à une autre. Le problème est que de ce que j'ai appris, on peut pas lier 2 listes entre elle, seulement lier une liste à une autre. du coup ce n'est pas ce que j'ai besoin.
    l'idée de changer une 3eme liste caché suivant quel liste est modifié parait beaucoup mieux convenir. est ce qu'il y a un petit cour ou un tuto pour expliquer un peu comment faire?
    Merci!

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    Il suffit d'ajouter "document.getElementById('champCache').value=1;" dans le onchange et d'ajouter <input type="hidden" id="champCache"> dans le formulaire.

    Ensuite, en PHP il faut tester la valeur de champCache.
    Christophe

    Pensez à mettre quand c'est le cas.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par zimeau Voir le message
    ...Le problème est que de ce que j'ai appris, on peut pas lier 2 listes entre elle, seulement lier une liste à une autre....
    Donc, tu sais lier liste A -> liste B
    Mais tu ne vois pas comment lier liste B -> liste A...

    C'est pourtant exactement le même principe (à peu de chose près).

    Ca risque par contre de demander un peu de réflexion de ta part...

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Donc, tu sais lier liste A -> liste B
    Mais tu ne vois pas comment lier liste B -> liste A...

    C'est pourtant exactement le même principe (à peu de chose près).

    Ca risque par contre de demander un peu de réflexion de ta part...
    j'ai tenté mais avec mon niveaux ajax, ça demandais beaucoup de temps de compréhension/développement pour pas faire grande chose.
    Citation Envoyé par Christophe P. Voir le message
    Il suffit d'ajouter "document.getElementById('champCache').value=1;" dans le onchange et d'ajouter <input type="hidden" id="champCache"> dans le formulaire.

    Ensuite, en PHP il faut tester la valeur de champCache.
    c'est parfait, ça marche! simple, efficace et facile à mettre en œuvre. j'ai d'autre champs qui vont être liées les un aux autre dans mon formulaire, je vais pouvoir faire des traitements PHP différent suivant ce qui est sélectionné. mon problème est résolu, merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ODBC] Probleme sur un SELECTED de SELECT avec PHP
    Par G.D.O dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 27/03/2006, 15h44
  2. select 'detail.php?id='||ID from table;
    Par XtofRoland dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/03/2006, 10h35
  3. Recuperer les données d'un formulaire en PHP
    Par mekdar dans le forum Langage
    Réponses: 2
    Dernier message: 29/11/2005, 15h41
  4. recupere valeur d'une balise select
    Par naourass dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 03/11/2005, 10h18
  5. Recuperation de Name d'un composant et le convertir
    Par bob8181_2000 dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/09/2005, 21h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo