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

Langage PHP Discussion :

Récupération de la valeur d'un champ


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut Récupération de la valeur d'un champ
    mon code réalise une liste déroulante, avec des nom a l'intérieur et quand je clique sur un nom, que j'appuie sur le boutton ok; j'aimerai qui me renvoi le nom suivi du codeinfo.. si quelqu'un voudrait bien m'aider je lui en serait reconnaissant
    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
     
    <?php
     $config=array(
      'Database'=>'udaf34',
      'UID'=>'sa',
      'PWD'=>'admin13@');
    $idconnect=sqlsrv_connect('(local)',$config);
        if( $idconnect === false )
    {
         echo "Could not connect.\n";
         die( print_r( sqlsrv_errors(), true));
    }
    $result=sqlsrv_query($idconnect,'SELECT codeinfo,nom FROM clientordon order by nom asc ');
     
     
    echo '<form name="selection" action="proto_php_sqlserver.php" method="post">
    <select name="liste_deroulante">';
    while($nini=sqlsrv_fetch_array($result))
    {
        echo '<option value="' . $nini['nom'] . '">' . htmlentities($nini['nom']) . '</option>';
    }
    echo '</select>
    <input type="submit" value="OK">
    </form>';
     
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value='. $nini['nom']}-{$nini['codeinfo']}">" . htmlentities($nini['nom']) . '</option>';
    }
     
    if (isset($_POST['liste_deroulante']))
    {
      list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']) + array("");
    }
     
    ?>
    merci développeur

  2. #2
    Membre éprouvé Avatar de Bebel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2003
    Messages : 786
    Points : 1 262
    Points
    1 262
    Par défaut
    Bonjour,

    dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="' . $nini['nom'] . '">' . htmlentities($nini['nom']) . '</option>';
    il suffit de remplacer le premier $nini['nom'] par $nini['codeinfo'].

    ce qu'il y a dans l'attribut value est la valeur envoyée par la validation.
    Ce qu'il y a entre les balises <option> correspond à la valeur affichée dans le formulaire.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Points : 348
    Points
    348
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value='. $nini['nom']}-{$nini['codeinfo']}">" . htmlentities($nini['nom']) . '</option>';
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value='. $nini['nom'].'-'.$nini['codeinfo'].">" . htmlentities($nini['nom']) . '</option>';
    }

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut tjrs erreur..
    j'ai suivi t'es conseille mais on me dit que j'ai toujours une erreur partiel dans ce secteur.. jtrouve pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value="'. {$nini['nom']}-{$nini['codeinfo']}'">"' . htmlentities($nini['nom']) . '"</option>';
    }

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    sa se connecte mais quand je clique sur un nom de ma liste déroulante sa ne me renvoi pas les codeinfo sa renvoi:

    Notice: Undefined offset: 1 in C:\wamp\www\php_proto\proto_php_sqlserver.php on line 34

    avec ma liste déroulante qui précedent ce message.

  6. #6
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Bonjour,

    Ton erreur indique que tu cherches à accéder à un élément de tableau à un indice qui n'existe pas. Au vu de ta requête, $nini['nom'] et $nini['codeinfo'] semblent OK.

    Qu'y a-t-il à la ligne 34 de ton code ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    bonjour chen norris voila ma ligne 34 en espérant que l'erreur te parle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']) + array("");

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Points : 348
    Points
    348
    Par défaut
    Etrange, cette structure marche :
    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
    <?php
    	echo '<form name="selection" action="index.php" method="post">
    	
    		<select name="liste_deroulante">';
    			echo '<option value="nom-code">1</option>';
    		echo '</select>
    		
    		<input type="submit" value="OK">
    	</form>';
     
    	if (isset($_POST['liste_deroulante']))
    	{
    		list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']) + array("");
    	}
     
    	echo $nom.' '.$codeinfo;
    ?>
    Test juste avant un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_POST['liste_deroulante'])

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut me revoila
    revoila mon code aprés quelque modifications apporté par vos connaissances:
    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
     
    <?php
     $config=array(
      'Database'=>'udaf34',
      'UID'=>'sa',
      'PWD'=>'admin13@');
    $idconnect=sqlsrv_connect('(local)',$config);
        if( $idconnect === false )
    {
         echo "Could not connect.\n";
         die( print_r( sqlsrv_errors(), true));
    }
    $result=sqlsrv_query($idconnect,'SELECT codeinfo,nom FROM clientordon order by nom asc ');
     
     
    echo '<form name="selection" action="proto_php_sqlserver.php" method="post">
    <select name="liste_deroulante">';
    while($nini=sqlsrv_fetch_array($result))
    {
        echo '<option value="' . $nini['codeinfo'] . '">' . htmlentities($nini['nom']) . '</option>';
    }
    echo '</select>
    <input type="submit" value="OK">
    </form>';
     
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value='. $nini['nom'].'-'.$nini['codeinfo'].">" . htmlentities($nini['nom']);
    }
     
     
    if (isset($_POST['liste_deroulante']))
    {
      list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']);
    }
    echo $nom.' '.$codeinfo;
     
    ?>
    mais maintenant cela me dit:

    Notice: Undefined variable: nom in C:\wamp\www\php_proto\proto_php_sqlserver.php on line 36

    Notice: Undefined variable: codeinfo in C:\wamp\www\php_proto\proto_php_sqlserver.php on line 36

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Points : 348
    Points
    348
    Par défaut
    Cela signifie que ton code ne rentre pas dans le if
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (isset($_POST['liste_deroulante']))
    {
      list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']);
    }
    Donc ton $_POST['liste_deroulante'] est vide.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    comment faire alors ac se code

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2011
    Messages : 36
    Points : 14
    Points
    14
    Par défaut
    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
     
     
    <?php
     $config=array(
      'Database'=>'*****',
      'UID'=>'**',
      'PWD'=>'*****');
    $idconnect=sqlsrv_connect('(local)',$config);
        if( $idconnect === false )
    {
         echo "Could not connect.\n";
         die( print_r( sqlsrv_errors(), true));
    }
    $result=sqlsrv_query($idconnect,'SELECT codeinfo,nom FROM Tclientordon order by nom asc ');
     
     
    echo '<form name="selection" action="proto_php_sqlserver.php" method="post">
    <select name="liste_deroulante">';
    while($nini=sqlsrv_fetch_array($result))
    {
        echo '<option value="' . $nini['codeinfo'] . '">' . htmlentities($nini['nom']) . '</option>';
    }
    echo '</select>
    <input type="submit" value="OK">
    </form>';
     
    while($nini=sqlsrv_fetch_array($result))
    {
      echo '<option value='. $nini['nom']}.'-'.{$nini['codeinfo']}.">" . htmlentities($nini['nom']) . '</option>';  //probleme sur cette ligne 
    }
     if (isset($_POST['liste_deroulante']))
    {
      list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante'])
    }
     
    ?>

  13. #13
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Bonjour,

    N'affiche $nom et $codeinfo que si tu rentres dans le if sinon, tu risques d'afficher des variables non initialisées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['liste_deroulante']))
    {
      list($nom, $codeinfo) = explode('-', $_POST['liste_deroulante']);
      echo $nom.' '.$codeinfo;
    }
    Pour ce qui est de la ligne avec problème, je ne connais pas la syntaxe avec accolades qui me semble pour le moins curieuse. Que souhaites-tu afficher ? Est-ce que tu ne cherches pas plutôt à faire ça ? ->

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<option value=\"".$nini["nom"]."-".$nini["codeinfo"]."\">".htmlentities($nini["nom"])."</option>";
    note : j'ai ajouté des guillemets pour la valeur des options, ça t'évitera du code HTML pas très standard.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/02/2008, 12h43
  2. Récupération de la valeur d'un champ
    Par jakkihm dans le forum Langage
    Réponses: 2
    Dernier message: 12/01/2007, 19h23
  3. Réponses: 22
    Dernier message: 04/09/2006, 12h53
  4. Récupération de la valeur d'un champ au nom variable
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 15h13

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