Afficher selon valeur d'un select

Résolu
barale61
Messages postés
1180
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
10 août 2022
- 21 sept. 2013 à 22:14
barale61
Messages postés
1180
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
10 août 2022
- 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.

3 réponses

NHenry
Messages postés
14968
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 août 2022
161
21 sept. 2013 à 23:00
Je pense qu'il faut que tu regardes vers Ajax, car en PHP, tu ne peux pas faire de script coté client.
0
f0xi
Messages postés
4205
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
12 mars 2022
37
21 sept. 2013 à 23:50
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 !
0
barale61
Messages postés
1180
Date d'inscription
jeudi 13 septembre 2012
Statut
Membre
Dernière intervention
10 août 2022
1
22 sept. 2013 à 22:51
Merci beaucoup.
0