Afficher selon valeur d'un select [Résolu]

Signaler
Messages postés
1101
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
8 octobre 2020
-
Messages postés
1101
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
8 octobre 2020
-
Bonjour,

Je souhaite faire affricher les données d'une table selon que la valeur d'un champ est égal à celle d'un select:

$colname_rsTest = $_POST['MonSelect'];

SELECT * matable WHERE ValeurDeMonChamp = $colname_rsTest


Mais ça marche pas mais bon, mon select n'est pas non plus posté. Je voudrais donc récupérer cette valeur au chargement de ma page mais aussi quand je fais un select (je suppose onchange)

Je vous remercie de m'aider.

3 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
145
Je pense qu'il faut que tu regardes vers Ajax, car en PHP, tu ne peux pas faire de script coté client.
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
32
Je confirme, utilise jQuery ou autre bibliotheque.

le script PHP qui retourne le resultat (selection.php) :
<?php

function getParam($p, $default = false){ 
  return isset($_GET[$p])?$_GET[$p]:(isset($_POST[$p])?$_POST[$p]:$default); 
}

$choice = getParam('s');


if($choice === false){
  echo ''; // retour vide sur S non définit.
  exit;
} else {
  $my = new mysqli('localhost', 'root', '', 'MaBase');
  if($my->connect_error){
    // erreur de connection
    echo '<p class="errorc">Une erreur est survenue coté serveur.</p>';
  } else {
    $query = "SELECT * FROM table WHERE champ='".$my->real_escape_string($choice)."'";
    if($result = $my->query($query)){
      if($result->num_rows == 0){
        // pas de resultat à donner
        echo '<p class="noresult">Aucun resultat trouvé.</p>';
      } else {
        // un ou plusieurs resultat à afficher
        echo '<ul class="result">';
        while($row = $result->fetch_assoc()){
          echo '<li>', $row['champ'],'</li>';
        }
        echo '</ul>';
      }
    } else {
      // erreur de requête 
      echo '<p class="errorq">Une erreur est survenue dans la requête.</p>';
    }
    $my->close();
  }
}

?>




La page HTML avec le script Ajax (jquery) :
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
  <script>
  // quand le document est prés (chargé complétement)
  $(document).ready(function(){
    // sur l'evenement (select)#selection.onChange
    $( '#selection' ).on('change', function(){
      // prendre valeur actuelle de #selection
      var s = $(this).val();
      $.ajax({
        url: 'selection.php?s='+s, // créer l'url
        success: function(data){
          // si succés de la demande, afficher data dans (div)#results 
          $( '#results' ).html( data );
        }
      });
    });
  });
  </script>
</head>
<body>
  <div id="controls">
    <select id="selection">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
    </select>
  </div>
  <div id="results">
  </div>
</body>
</html>



comme tu le constatera, c'est extrêmement simple à créer !
Messages postés
1101
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
8 octobre 2020

Merci beaucoup.