Afficher selon valeur d'un select

Résolu
barale61 Messages postés 1206 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 9 mai 2024 - 21 sept. 2013 à 22:14
barale61 Messages postés 1206 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 9 mai 2024 - 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 15132 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 19 juin 2024 159
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 34
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 1206 Date d'inscription jeudi 13 septembre 2012 Statut Membre Dernière intervention 9 mai 2024 1
22 sept. 2013 à 22:51
Merci beaucoup.
0
Rejoignez-nous