Mais non, c'est pas compliqué.
En gros :
Le client demande la page qui contient le select
Dès qu'il change la valeur du select en déroulant le menu :
Javascript envoie une requête à une page PHP en lui donnant en paramètre la ligne sélectionnée
La page PHP renvoie les informations associées à l'enregistrement sélectionne
Javascript reçoit la réponse et affiche les données
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
function createXhrObject()
{
if (window.XMLHttpRequest)
return new XMLHttpRequest();
if (window.ActiveXObject)
{
var names = [
"Msxml2.XMLHTTP.6.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"
];
for(var i in names)
{
try{ return new ActiveXObject(names[i]); }
catch(e){}
}
}
window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
return null; // non supporté
}
_xmlHttpxhr = createXhrObject(); //On crée un objet XMLHttp
url = "http://"; //l'url à apeller
//La fonction réalisant l'appel distant
function call( id ){
if( _xmlHttp&&_xmlHttp.readyState!=0)
_xmlHttp.abort(); //Si il est en train de faire un requête, on lui dit d'arrêter
if(_xmlHttp){ //Si l'objet XMLHttp est bien un objet
_xmlHttp.open( "GET", url + "?id=" + id, true ); //On lui dit l'url à appeler, et comment le faire ( en GET )
_xmlHttp.onreadystatechange=function() { //Quand il a reçu la réponse, il effectue le contenu de cette fonction anonyme
if( _xmlHttp.readyState==4){ //Si il a bien fini de recevoir la réponse
afficher( _xmlHttp.responseText ); //il appelle l'affichage
}
}
_xmlHttp.setRequestHeader( 'Content-Type', 'x-www-form-urlencoded'); //Un header
_xmlHttp.send( null ); //On envoie la requête
}
}
function modif( what ){ //what sera le select en lui même, donc on recupère la valeur du value de la ligne courante
if( what.options[what.selectedIndex].value == -1 ) //si on est pas sur la ligne 'choisissez'
return call( what.options[what.selectedIndex].value ); //On appelle le serveur pour avoir les informations
}
function afficher( texte ){
//Ici tu traite la chaine que tu reçoit
texte = texte.split( '§' );
alert( texte );
} |
Le code PHP
1 2 3 4 5 6 7 8 9 10 11
|
<?php
$id = $_GET[ 'id' ];
//connection à la DB
...
$sql_affichage = mysql_query('SELECT * FROM voyage where id = \''.mysql_real_escape_string( $id ). "'" ); //Il faut les ' autour de la valeur, pas des ", sinon tu aura une erreur de mySQL
$table = mysql_fetch_assoc( $sql_affichage );
echo implode( '§', $sql_affichage );
?> |
Et sur le select en question :
<select onchange="javascript:modif( this );">
Et pour créer tes option tu fait des
echo '<option value=' . $data3[ 'id' ] . '>' . $data3[ 'Nom' ] . '</option>'
Bien sur, j'espère que tu as un champ id, numérique dans ta table ^^' c'est bien plus propre que de passer les noms
Déjà si tout ça marche ^^".
J'espère que tu n'est pas perdue dans ce que je viens d'écrire
Partager