PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 Re : Forum Général PHP » [Résolu] recupérer la valeur de la liste deroulante dynamique » 15-11-2012 13:44:22

Merci beaucoup j'ai compris. Du coup j'ai corrigé mon erreur et ça donne. merci.

#2 Re : Forum Général PHP » [Résolu] recupérer la valeur de la liste deroulante dynamique » 15-11-2012 13:44:22

si au moins dans mon echo il m'affichait 1920 qui est ici la valeur par defaut mais non il m'affiche le nombre 1. je sais pas pourquoi.

#3 Re : Forum Général PHP » [Résolu] recupérer la valeur de la liste deroulante dynamique » 15-11-2012 13:44:22

Merci de m'aider,
1 - le formulaire est en post
2- le bouton de soumission est dans le formulaire
3- le $selected est effectivement mis à vide. au depart aussi il est à vide.
je te poste tout mon code pour que tu comprennes mieux ma logique

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Recherche d'étudiants</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
   
    </head>
  <body>
    <h2>Recherche d'étudiants</h2>
    <form method="post" action="" >
      <p>
            <label>Nom d'étudiant </label>
        <input type="text" name="nom" value=""/>
        <div id="nom"></div>
        <input type="submit" name="recherche"  value="Rechercher"/>
      </p>
   

<?php

include("fonctions.connect.php");
 echo "<select name='annees' >";
$selected='';
for($i=1920; $i<=2009; $i++)
{
// Affichage de la ligne
echo "<option value='". $i."' ".$selected.">".$i." </option >";
// Remise à zéro de $selected
$selected='';
}
echo "</select>";
$an=isset($_POST['annees']);
echo "$an";
?>
</form>
<?php
// Si une recherche a été effectuée (bouton "Rechercher" cliqué) :
if (isset($_POST['recherche'])) {

     $connect_db = connect();
  // Recherche des étudiants dans la base de données
  // début de construction de la requête : par défaut, on sélectionne tous les étudiants
  $requete = "SELECT nom, prenom FROM etudiant ";
  // éventuelle restriction de la recherche selon le nom de l'étudiant saisi
    // taille de la selection
  if (!empty($_POST['nom'])) {
    $nom = mysql_real_escape_string($_POST['nom']);
    $requete .= "WHERE nom = '$nom' ";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete .= "ORDER BY nom, prenom ;";
  // exécution de la requête sur la base de données
  $etudiants = mysql_query($requete)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");

  // Affichage des étudiants trouvés
  echo '<h2>Résultat</h2>';
  $etudiant = mysql_fetch_array($etudiants);
  // cas où la recherche n'a donné aucun résultat
  if (!$etudiant)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do/*
        echo "<p>".htmlspecialchars(strtoupper($etudiant['nom']))." "
         .htmlspecialchars($etudiant['prenom'])." </p>\n";*/

 {$lib_nom=htmlspecialchars(strtoupper($etudiant['nom']))." ".$etudiant['prenom'];
?>    
    <a href="fiche_etudiant.php?fiche=<?php echo "$lib_nom";?>"><?php echo $lib_nom; ?></a><br>    
     
<?php
}
while ($etudiant = mysql_fetch_array($etudiants));
   
  close();
}
?>
    </body>
</html>
 

voilà merci

#4 Forum Général PHP » [Résolu] recupérer la valeur de la liste deroulante dynamique » 15-11-2012 13:44:22

valmelissa
Réponses : 5

Bonjour,
je voudrais pouvoir recupérer la valeur de l'attribut name de l'input du formulaire que j'ai fait mais je n'y arrive pas. mon code est celui-ci

<?php
echo "<select name='annees' >";
for($i=1920; $i<=2009; $i++)
{
// Affichage de la ligne
echo "<option value='". $i."' ".$selected.">".$i." </option >";
// Remise à zéro de $selected
$selected='';
}
echo "</select>";?>

quand je fais ceci pour recupérer le contenu de la liste deroulante selectionné ou si je fais echo la variable $annees=$_POST['annees'] je n'ai rien.
quand cette liste deroulante n'est pas dynamique je le fais aisément mais là je ne comprends pas pour quoi ça ne donne pas.
Merci

#7 Re : MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

En fait je réecris mon code ce qui fait que je change les variables, ce n'est pas un soucis. merci

#8 Re : MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

et que representerait id et page. moi j'ai plutôt mis nom= à la plade de id= et j'ai cette erreur 
Parse error: syntax error, unexpected ' ', expecting while (T_WHILE) in C:\Program Files\EasyPHP-12.0\www\my portable files\devoir3\recherche_etudiants_par_nom_v11.php on line 63
voilà le code:

<a href="recherche_etudiants_par_nom_v11.php?nom=<?php echo "<p>".htmlspecialchars(strtoupper($etudiant3['nom']))." ".htmlspecialchars(strtoupper($etudiant3['prenom']))." </p>\n";
        ?>"></a><br>

#9 Re : MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

Ce n'est pas ça le problème si j'enlève le <a .......</a> ça marche très bien. le problème n'est pas au niveau des accolades surement au niveau de la syntaxe.

#10 Re : MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

le voilà allegé.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
   "[url]http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <title>Recherche d'étudiants</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
    </head>
    <body>
    <h2>Recherche d'étudiants</h2>
    <form method="post" action="">
      <p>
        <label>Nom d'étudiant </label>
        <input type="text" name="nom" value="" />
        <input type="submit" name="recherche" value="Rechercher" />
      </p>
    </form>

<?php

// Si une recherche a été effectuée (bouton "Rechercher" cliqué) :
if (isset($_POST['recherche'])) {
   
  // connexion au serveur MySQL
  $base_id = mysql_connect("localhost", "*********", "**********")
  or exit("<p>Impossible de se connecter au serveur MySQL : ".mysql_error()."</p>\n");
  // sélection de la base
  $selection = mysql_select_db("exercices_php", $base_id)
  or exit("<p>Impossible de sélectionner la base : ".mysql_error()."</p>\n");

  // Recherche des étudiants dans la base de données
  // début de construction de la requête : par défaut, on sélectionne tous les étudiants
  $requete = "SELECT nom, prenom FROM etudiant ";
  // éventuelle restriction de la recherche selon le nom de l'étudiant saisi
  if (!empty($_POST['nom'])) {
    $nom = mysql_real_escape_string($_POST['nom']);
    $requete .= "WHERE nom = '$nom' ";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete .= "ORDER BY nom, prenom ;";
  // exécution de la requête sur la base de données
  $etudiants = mysql_query($requete)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");

  // Affichage des étudiants trouvés
  echo "<h2>Résultat</h2>\n";
  $etudiant = mysql_fetch_array($etudiants);
  // cas où la recherche n'a donné aucun résultat
  if (!$etudiant)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>\n";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do
       ?>
        <a href="recherche_etudiants.php?<?php echo "<p>".htmlspecialchars(strtoupper($etudiant3['nom']))." "
         .htmlspecialchars(strtoupper($etudiant3['prenom']))." </p>\n";?>"></a><br>
    <?php
    while ($etudiant = mysql_fetch_array($etudiants));
   
  mysql_close($base_id);
}

?>
    </body>
</html>

#11 Re : MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

Ok j'ai fait une erreur en recopiant, mais mon erreur demeure. je n'arrive pas à afficher mon resultat sous forme de lien .

#12 MySQL, PostgreSQL, etc... » mettre mes resultat en lien pour affichage » 07-11-2012 15:37:44

valmelissa
Réponses : 15

Bonjour à tous,
j'ai cette diffculté je voudrais que lorsque je fais ma recherche et que j'obtient un resultat que ce resultat soit presenté sous forme de lien. je l'ai déjà essayé avec une autre reqête ça donne mais avec celle ci-dessous ça ne donné pas, j'ai cette erreur :  Parse error: syntax error, unexpected ' <a href="recherche_etudi', expecting while (T_WHILE) in C:\Program Files\EasyPHP-12.0\www\my portable files\devoir3\recherche_etudiants.php on line 230.
voici le code:

 <?php
 /*<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
 "[url]http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd[/url]">*/

//header("pragma:no-cache");
// connexion au serveur MySQL
  $base_id = mysql_connect("localhost", "******", "**********")
  or exit("<p>Impossible de se connecter au serveur MySQL : ".mysql_error()."</p>\n");
  // sélection de la base
  $selection = mysql_select_db("exercices_php", $base_id)
  or exit("<p>Impossible de sélectionner la base : ".mysql_error()."</p>\n");
  $formation="select * from formation";
  $pays="select * from pays";
//execution de la requete:on envoie la requete au serveur qui nous retourne le resultat
$formation = mysql_query($formation)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  $pays = mysql_query($pays)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  $ligneformation=mysql_fetch_object($formation);
  $lignepays=mysql_fetch_object($pays);
?>
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <title>Recherche d'étudiants</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
    </head>
    <body>
    <h2>Recherche d'étudiants</h2>
    <form method="post" action="">
      <p>
        <label>Nom d'étudiant </label>
        <?php
        // si un nom a été saisi (lors de la recherche précédente),
        // on remplit le champ avec ce nom (conservation de la saisie texte)
                echo '<input type="text" name="nom" value="'
             .(isset($_POST['nom']) ? htmlspecialchars($_POST['nom']) : '').'" />';
                echo "\n";
                ?>
        <br>
Formation : <select name="formation">
<option value="général" selected>Indifférent</option>
<option value="Master M1" <?php if ("$ligneformation->nom"=="Master M1") echo "selected";?>>Master M1</option>
<option value="Master M2" <?php if ("$ligneformation->nom"=="Master M2") echo "selected";?>>Master M2</option>
<option value="DU CPM" <?php if ("$ligneformation->nom"=="DU CPM") echo "selected";?>>DU CPM</option>
<option value="DU TBM" <?php if ("$ligneformation->nom"=="DU TBM") echo "selected";?>>DU TBM</option>
</select><br>
Pays : <select name="pays">
<option value="général" selected>Indifférent</option>
<option value="France" <?php if ("$lignepays->nom"=="France") echo "selected";?>>France</option>
<option value="Maroc" <?php if ("$lignepays->nom"=="Maroc") echo "selected";?>>Maroc</option>
<option value="Burkina Faso" <?php if ("$lignepays->nom"=="Burkina Faso") echo "selected";?>>Burkina Faso</option>
<option value="Irlande" <?php if ("$lignepays->nom"=="Irlande") echo "selected";?>>Irlande</option>
<option value="Sénégal" <?php if ("$lignepays->nom"=="Sénégal") echo "selected";?>>Sénégal</option>
</select><br>
Naissance entre l'année : <select name="année1">
<option value="général" selected> Indifférent</option>
<option value="1989" <?php echo "selected";?>>1989</option>
<option value="1988" <?php echo "selected";?>>1988</option>
<option value="1987" <?php echo "selected";?>>1987</option>
<option value="1986" <?php echo "selected";?>>1986</option>
<option value="1985" <?php echo "selected";?>>1985</option>
<option value="1984" <?php echo "selected";?>>1984</option>
<option value="1983" <?php echo "selected";?>>1983</option>
<option value="1982" <?php echo "selected";?>>1982</option>
<option value="1981" <?php echo "selected";?>>1981</option>
<option value="1980" <?php echo "selected";?>>1980</option>
<option value="1979" <?php echo "selected";?>>1979</option>
<option value="1978" <?php echo "selected";?>>1978</option>
<option value="1977" <?php echo "selected";?>>1977</option>
<option value="1976" <?php echo "selected";?>>1976</option>
</select>
et l'année : <select name="année2">
<option value="général" selected> Indifférent</option>
<option value="1989" <?php echo "selected";?>>1989</option>
<option value="1988" <?php echo "selected";?>>1988</option>
<option value="1987" <?php echo "selected";?>>1987</option>
<option value="1986" <?php echo "selected";?>>1986</option>
<option value="1985" <?php echo "selected";?>>1985</option>
<option value="1984" <?php echo "selected";?>>1984</option>
<option value="1983" <?php echo "selected";?>>1983</option>
<option value="1982" <?php echo "selected";?>>1982</option>
<option value="1981" <?php echo "selected";?>>1981</option>
<option value="1980" <?php echo "selected";?>>1980</option>
<option value="1979" <?php echo "selected";?>>1979</option>
<option value="1978" <?php echo "selected";?>>1978</option>
<option value="1977" <?php echo "selected";?>>1977</option>
<option value="1976" <?php echo "selected";?>>1976</option>
</select><br>
        <input type="submit" name="recherche" value="Rechercher" />
      </p>
    </form>

<?php

// Si une recherche a été effectuée (bouton "Rechercher" cliqué) :
if (isset($_POST['recherche'])) {
   
  // connexion au serveur MySQL
  $base_id = mysql_connect("localhost", "script_php", "zh6tjPp6T56N4dbF")
  or exit("<p>Impossible de se connecter au serveur MySQL : ".mysql_error()."</p>\n");
  // sélection de la base
  $selection = mysql_select_db("exercices_php", $base_id)
  or exit("<p>Impossible de sélectionner la base : ".mysql_error()."</p>\n");

  // Recherche des étudiants dans la base de données
  // début de construction de la requête : par défaut, on sélectionne tous les étudiants
  $requete = "SELECT etudiant.nom, etudiant.prenom FROM etudiant ";
  $requete2 = "SELECT distinct (etudiant.nom), etudiant.prenom FROM etudiant,formation,pays ";
  // éventuelle restriction de la recherche selon le nom de l'étudiant saisi
  /*if (!empty($_POST['nom'])) {
    $nom = mysql_real_escape_string(htmlspecialchars_decode($_POST['nom']));
    //$formation=$_POST['formation'];
    $requete .= "WHERE etudiant.nom = '$nom'";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete .= "ORDER BY nom, prenom ;";
  // exécution de la requête sur la base de données
  $etudiants = mysql_query($requete)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  // Affichage des étudiants trouvés
  echo "<h2>Résultat</h2>\n";
  $etudiant = mysql_fetch_array($etudiants);
  // cas où la recherche n'a donné aucun résultat
  if (!$etudiant)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>\n";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do
        echo "<p>".htmlspecialchars(strtoupper($etudiant['nom']))." "
         .htmlspecialchars($etudiant['prenom'])." </p>\n";
    while ($etudiant = mysql_fetch_array($etudiants));*/

 
  if ($_POST['formation'] and empty($_POST['nom']) and $_POST['pays'] and $_POST['année1'] and $_POST['année2']) {
  $formation=$_POST['formation'];
  $pays=$_POST['pays'];
  $année1=$_POST['année1'];
  $année2=$_POST['année2'];
    $requete2.= "WHERE formation.id_formation = etudiant.id_formation AND pays.id_pays=etudiant.id_pays AND extract(year FROM etudiant.date_naissance) BETWEEN '$année1' and '$année2' AND pays.nom= '$pays' AND formation.nom = '$formation'";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete2 .= "ORDER BY etudiant.nom,etudiant.prenom ;";
  // exécution de la requête sur la base de données
  $etudiants2 = mysql_query($requete2)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  // Affichage des étudiants trouvés
  echo "<h2>Résultat2</h2>\n";
  $etudiant3 = mysql_fetch_array($etudiants2); 
  if (!$etudiant3)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>\n";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do
         echo "<p>".htmlspecialchars(strtoupper($etudiant3['nom']))." "
         .htmlspecialchars(strtoupper($etudiant3['prenom']))." </p>\n";
    while ($etudiant3 = mysql_fetch_array($etudiants2));
<?php

// Si une recherche a été effectuée (bouton "Rechercher" cliqué) :
if (isset($_POST['recherche'])) {
   
  // connexion au serveur MySQL
  $base_id = mysql_connect("localhost", "script_php", "zh6tjPp6T56N4dbF")
  or exit("<p>Impossible de se connecter au serveur MySQL : ".mysql_error()."</p>\n");
  // sélection de la base
  $selection = mysql_select_db("exercices_php", $base_id)
  or exit("<p>Impossible de sélectionner la base : ".mysql_error()."</p>\n");

  // Recherche des étudiants dans la base de données
  // début de construction de la requête : par défaut, on sélectionne tous les étudiants
  $requete = "SELECT etudiant.nom, etudiant.prenom FROM etudiant ";
  $requete2 = "SELECT distinct (etudiant.nom), etudiant.prenom FROM etudiant,formation,pays ";
  // éventuelle restriction de la recherche selon le nom de l'étudiant saisi
  /*if (!empty($_POST['nom'])) {
    $nom = mysql_real_escape_string(htmlspecialchars_decode($_POST['nom']));
    //$formation=$_POST['formation'];
    $requete .= "WHERE etudiant.nom = '$nom'";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete .= "ORDER BY nom, prenom ;";
  // exécution de la requête sur la base de données
  $etudiants = mysql_query($requete)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  // Affichage des étudiants trouvés
  echo "<h2>Résultat</h2>\n";
  $etudiant = mysql_fetch_array($etudiants);
  // cas où la recherche n'a donné aucun résultat
  if (!$etudiant)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>\n";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do
        echo "<p>".htmlspecialchars(strtoupper($etudiant['nom']))." "
         .htmlspecialchars($etudiant['prenom'])." </p>\n";
    while ($etudiant = mysql_fetch_array($etudiants));*/

 
  /*if ($_POST['formation'] and empty($_POST['nom']) and $_POST['pays'] and $_POST['année1'] and $_POST['année2']) {
  $formation=$_POST['formation'];
  $pays=$_POST['pays'];
  $année1=$_POST['année1'];
  $année2=$_POST['année2'];
    $requete2.= "WHERE formation.id_formation = etudiant.id_formation AND pays.id_pays=etudiant.id_pays AND extract(year FROM etudiant.date_naissance) BETWEEN '$année1' and '$année2' AND pays.nom= '$pays' AND formation.nom = '$formation'";
  }
  // fin de construction de la requête : classement des résultats
  // par ordre alphabétique des noms, puis des prénoms
  $requete2 .= "ORDER BY etudiant.nom,etudiant.prenom ;";
  // exécution de la requête sur la base de données
  $etudiants2 = mysql_query($requete2)
  or exit("<p>La requête au serveur MySQL a échoué : ".mysql_error()."</p>\n");
  // Affichage des étudiants trouvés
  echo "<h2>Résultat2</h2>\n";
  $etudiant3 = mysql_fetch_array($etudiants2); 
  if (!$etudiant3)
    echo "<p>Aucun étudiant ne correspond à votre recherche.</p>\n";
  // autre cas : il y a au moins un étudiant à afficher
  else
    // écriture d'un paragraphe par étudiant trouvé
    do
          ?>

        [b]<a href="recherche_etudiants.php?<?php echo "<p>".htmlspecialchars(strtoupper($etudiant3['nom']))." "
         .htmlspecialchars(strtoupper($etudiant3['prenom']))." </p>\n";?>"></a><br>[/b]
    <?php
    while ($etudiant3 = mysql_fetch_array($etudiants2)); 
 
}

?>
    </body>
</html>
 

je ne sais pas si je m'y prend bien. quelqu'un peut-il m'aider?

Pied de page des forums

Propulsé par FluxBB