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

Signaler
Messages postés
1095
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2020
-
Messages postés
1095
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
30 avril 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
14672
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2020
143
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
4199
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
29
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
1095
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
30 avril 2020

Merci beaucoup.