liste déroulante, récuperer valeur sélectionner

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : liste déroulante, récuperer valeur sélectionner

Re: liste déroulante, récuperer valeur sélectionner

par or 1 » 25 août 2019, 16:12

je ne sais pas comment y faire référence ( $ld[Nom] ?)
il faut donc lire et assimiler un cours/tutorial sur les formulaires en php, que je te laisse trouver sur ton moteur de recherche favori.

Re: liste déroulante, récuperer valeur sélectionner

par antoine lebrun » 25 août 2019, 15:48

Merci Naroth pour le cours, j'ai a pu près compris :)

Pour Or 1,
alors pour le 1) je pense avoir compris, mais en fait pas sûr, donc bon .. :) , en gros il veut mieux faire des fonctions.

pour le 3,)
"les champs de formulaire qui sont entre <form> et </form> seront passés à consulter.php"

mais ma liste $ld a priori, est considérée comme un champ de formulaire ?
c'est la valeur sélectionnée de la liste que je souhaite récuperer en cliquant sur le bouton
pour pouvoir remplir les zones de texte
je ne sais pas comment y faire référence ( $ld[Nom] ?) et je sais encore moins quelle est la valeur (index) sélectionné de la liste

tel que je le comprends, la premiere fois que j'appelle cette page, je n'ai rien de sélectionné donc la liste doit avoir l'index 0

quand je fais un <?php print $ld["Nom"];?> dans cette page apres avoir cliqué sur le bouton j'ai le droit à un joli > au milieu de ma page..

Re: liste déroulante, récuperer valeur sélectionner

par or 1 » 25 août 2019, 14:42

1) non. c'est mieux de faire une fonction générique qui affiche les options d'une liste à partir de la requete sql passée, mais cela peut être pour un second temps ou jamais vu que cela fonctionne.
echo "<select ....>";
printOptionListe("SELECT iddelaprenant, concat (Nom, ' ', Prenom, ' ', CUID) FROM Apprenant ORDER BY Nom ASC");
echo "</select>";
ainsi, l'essentiel du code ne sera pas à copier/coller si l'on veux afficher une liste différente.
si plusieurs personnes ont le même prénom, il sera impossible de déterminer la personne sélectionnée par la liste.
2) rien à redire
3) c'est déjà ce qui est fait avec <form method="post" action="consulter.php">. les champs de formulaire qui sont entre <form> et </form> seront passés à consulter.php

Re: liste déroulante, récuperer valeur sélectionner

par Naroth » 25 août 2019, 12:00

Bonjour,

Tous les tableaux de php sont associatifs.
Associatif veut juste dire qu'on associe à une clé, une valeur

Code : Tout sélectionner

$arr = array ( "key1" => "valeur1", "key2" => "valeur2", "key3" => "valeur3", ); echo $arr["key2"]; //Affiche "valeur2"

Les clés peuvent être des entiers ou des chaînes de caractères.

PHP permet de définir des tableaux de la manière suivante :

Code : Tout sélectionner

$arr = array( "valeur1", "valeur2", "valeur3")
Ce qui est strictement équivalent à :

Code : Tout sélectionner

$arr = array( 0 => "valeur1", 1 => "valeur2", 2 => "valeur3", )

liste déroulante, récuperer valeur sélectionner

par antoine lebrun » 25 août 2019, 10:44

Bonjour, j'ai essayé de trouver les infos dans x tutoriels ..

grand débutant en php, sans les bases, je galère...beaucoup
j'ai un fichier liste apprenant.php, qui se connecte a ma base et qui récupére l'ident (CUID), le prénom et le nom d'un utilisateur
le but est dans une autre page, d'afficher la liste déroulante constituée , ce qui fonctionne, (même si je dois avouer que je comprends rien à la notion de tableau associatif et comment il fait pour créer une liste déroulante dynamique, j'ai récup le bout de code.., et je ne comprend rien non + au select ;) ) et de remplir des zones de texte avec pour commencer le CUID, le prénom, le nom (et plus tard d'autres infos que j'aurais grâce à ma requete
merci si vous pouvez m'aider comme hier ;)
Antoine

liste apprenant.php
<?php
include("fonctions.php");

                                    
           //connection à la base de données
            connectMaBase();
       


 $requete = "SELECT CUID, Nom, Prenom FROM Apprenant ORDER BY           Nom ASC";
 // Exécution de la requête
  $req_exec = mysql_query($requete) or die(mysql_error());

// Construction de la chaîne de caractères qui fait la // liste

$ld = "<SELECT NAME='Nom'>";

 $ld .= "<OPTION VALUE=0>Choisissez le nom d'un apprenant</OPTION>";
 // On boucle sur la table
 while ( $row = mysql_fetch_array( $req_exec)) {
     // $row est un tableau associatif
     // les éléments sont «indicés» par les noms
     // des colonnes. 

     $Nom = $row["Nom"];
     $Prenom = $row["Prenom"];
     $CUID = $row["CUID"];
     $ld .= "<OPTION VALUE='$Prenom'>$Nom $Prenom $CUID</OPTION>";

 }
 $ld .= "</SELECT>";
  mysql_close();
 
?>



depuis une autre page, j'affiche la liste déroulante récupéré dans le premier (ça fonctionne), j'ai créé un bouton, et souhaite aller remplir des champs sur cette même page

1) est ce la meilleure facon de constituer la liste telle que c'est fait dans le premier fichier ?
2) est ce la meilleure façon de l'afficher avec le print $ld
3) une fois que j'ai sélectionné un item dans ma liste, je pense qu'il faut que je rappelle le 1er fichier (but du bouton) en lui passant la valeur ? puis derrière remplir les champs de la 2eme page

consulter.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <title>ATLAS - Consulter</title>

  <link rel="stylesheet" type="text/css" href="style.css">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>


<body>
<div style="text-align: center;"><?php include("Listeapprenant.php");?></div>


<?php print $ld;?>
</div>

<form method="post" action="consulter.php">
  <div> <button type="submit" class="button2" value="submit"><span>Choisir un apprenant </span></button>
  </div>
</form>