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 :

recupérer les valeur d'un select


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut recupérer les valeur d'un select
    Bonjour à tous,

    Je cherche a récupérer en php les valeur compris dans les <option> d'un select.
    En effet, j'utilise une requête pour récupérer les informations de ma table et je stocke en même temps les informations dans le tableau $tab_nom_site.
    Comme ceci:
    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
    $tab_nom_site = array();
    	if (($con = mysql_connect(HOST, LOGIN, PASSWORD)) !== false){
    		if (mysql_select_db(DB)) {
    			$query = "SELECT id, name FROM site ORDER BY id;";
    			$result = mysql_query($query);
    			//tant que $row contient quelque chose
    			$i=0;
    			while($row = mysql_fetch_array($result)) {
    				$tab_nom_site[$i]=$row[1]; 
    				echo "<option value=\"$row[0]\">".$row[1]."</option>";
    				$i++;
    			}
    		}
    		//echo mysql_error();
    		mysql_close($con);
    	}
    J'utilise un <input type="hidden"...> pour poster mon tableau vers l'autre Comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="hidden" name="steackhache" value="<?php echo $tab_nom_site; ?>"/>
    	<input type="submit" name="rechercher" value="Rechercher"/>
    Du coup, je récupère une lettre au lieu du nom du site, quand je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php 
    $n_site= $_POST['site'];
    $tab=$_POST['steackhache'];
    echo $tab[$n_site]; ?>
    Quelqu'un sait-il pourquoi je ne récupère qu'une lettre au lieu du mot?

    Sinon, quelqu'un aurait-il une autre solution pour recupérer une élement du tableau ?

    merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Par défaut
    Je ne pense pas que tu puisses poste un tableau complte via ton champ hidden, sauf à le sérialiser (c'est à dire en faire une chaîne de caractères) au préalable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <input type="hidden" name="steackhache" value="<?php echo serialize($tab_nom_site); ?>"/>
    Ensuite dans ton code qui récupère le formulaire, tu désérialises la chaîne reçue pour en refaire tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $tab = unserialize($_POST['steackhache']);
    Plus d'infos ici:

    http://fr3.php.net/manual/fr/function.serialize.php

  3. #3
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Non ca ne m'affiche rien avec le serialize et le unserialize.
    Merci quand même.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il faut proteger les guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="steackhache" value="<?php echo htmlentities(serialize($tab_nom_site)); ?>"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = unserialize(html_entity_decode($_POST['steackhache']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 320
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Il faut proteger les guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="steackhache" value="<?php echo htmlentities(serialize($tab_nom_site)); ?>"/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = unserialize(html_entity_decode($_POST['steackhache']));
    Au temps pour moi

  6. #6
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut
    essai sa pour voir
    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
    <?
    $base="nom_base";
    $conn=mysql_connect("localhost","root","");
    mysql_select_db($base);
    $sql="select * from nom_table";
    $result=mysql_query($sql);
    ?><html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="">
      <label>
      <select name="select">
      <option value="a">a</option>
      <? while($row=mysql_fetch_array($result)){ ?>
        <option value="<? echo ''.$row['images'].''; ?>"><? echo ''.$row['images'].''; ?>
        <? } ?>
      </select>
      </label>
    </form>
    </body>
    </html>

  7. #7
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Non plus!
    apparemment, je ne peux pas recupérer ce qu'il y'a entre la balise <option></option>.
    Il vaut mieux que je fasse une 2ème requête ou alors passer dans le value de l'option le nom du site auquel cas je dois modifier tout mon script.

    ---------
    J'ai fait ma 2ème requête mais je n'arrive pas à avoir le résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $n_site= $_POST['site'];
    $query = "SELECT name FROM site where=id='".$n_site."';";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    echo "row: ".$row; die;
    Pourtant quand je fais un count($result) c'est égale à un.

    Quelqu'un à une idée ?

    Merci d'avance

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    C'est une faute de frappe en recopiant sur le forum ?
    apparemment, je ne peux pas recupérer ce qu'il y'a entre la balise <option></option>.
    Quel est le rapport entre la balise option et ton problème ?
    Je ne te suis plus la.

    Sinon de toute facon, repasser la liste a travers le POST c'etait de toute facon cochon.
    La bonne facon est effectivement de refaire la requete sur la nouvelle page.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut
    je pense que t'as pas bien compris mon code.
    essai le pour voir

  10. #10
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Si merci Akramweb.
    merci sabotage pour l'erreur de frappe.

    J'ai une erreur Mysql concernant la ligne en rouge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query = "SELECT name FROM site where id=".$n_site.";";
    $result = mysql_query($query);
    $row = mysql_fetch_array($result);
    echo "row: ".$row[0]; die;
    du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\Campagne_AdServer\rechercher_new.php on line 25
    Quelqu'un sait-il se qu'il me raconte?
    Je veux juste récuperer l'occurrence trouvé, c'est simple non !?
    Merci

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Lui aussi il voudrait bien mais ta requete est erroné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = mysql_query($query);
    echo mysql_error();
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre confirmé Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "SELECT name FROM site where id='$n_site'";
    t'as une erreur a ce niveau, je pense

  13. #13
    Membre éclairé Avatar de mouss4rs
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    884
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 884
    Par défaut
    Merci sabotage !you are the .

    Je ne lui ai pas mit de mysql_connect() et de mysql_db().

    Merci à vous tous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/08/2010, 10h07
  2. Réponses: 6
    Dernier message: 22/08/2008, 17h20
  3. [Debutant] recupérer les valeurs d'un select
    Par foubou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/06/2008, 17h40
  4. Recupérer les valeurs d'un select multiple
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/02/2008, 12h49
  5. Récupérer les valeurs d'un <select> multiple
    Par vg33 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 25/10/2005, 12h38

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