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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    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
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 46
    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 éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    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 309
    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.

  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...

+ 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