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

Messages postés
1080
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
2 août 2019
- - Dernière réponse : barale61
Messages postés
1080
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
2 août 2019
- 22 sept. 2013 à 22:51
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.
Afficher la suite 

3 réponses

Messages postés
14522
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 août 2019
133
0
Merci
Je pense qu'il faut que tu regardes vers Ajax, car en PHP, tu ne peux pas faire de script coté client.
Commenter la réponse de NHenry
Messages postés
4278
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26
0
Merci
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 !
Commenter la réponse de f0xi
Messages postés
1080
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
2 août 2019
0
Merci
Merci beaucoup.
Commenter la réponse de barale61