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 !