[AJAX] Lier une liste avec un tableau avec Ajax
je veux lier une table avec un tableau
c a d recuperer mes donnees depuis ma base et les afficher suit a l evenement Onchange de mon select
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| function go(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState !=4){
document.getElementById('method').innerHTML='Chargement en cours'}
else
{document.getElementById('method').innerHTML=xhr.responseText}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_consulter_methode.php",true);
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('methode');
idMethode = sel.options[sel.selectedIndex].value);
xhr.send("idmethode="+idMethode);
} |
mon select
Code:
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
| <select name='methode' id='methode' onchange='go()'>
<option value='-1'>Choisir une methode</option>
<?
mysql_connect("localhost","root","");
mysql_select_db("assvisual");
$res = mysql_query("SELECT nom FROM methode ORDER BY idmethode");
while($row = mysql_fetch_assoc($res)){
echo "<option value='".$row["idmethode"]."'>".$row["nom"]."</option>";
}
?>
</select>
<h3>Renseignements de la methode</h3>
<?php
//On se connecte
connectMaBase();
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT idmethode,nom,description,lien FROM methode';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<div id="method">';
echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999" width="101">IdMethode</td>';
echo '<td bgcolor="#669999" width="101">Nom</td>';
echo '<td bgcolor="#669999" width="140">Description</td>';
echo '<td bgcolor="#669999" width="145">Lien</td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur * colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
echo '</div>';
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
?> |
mon script php
Code:
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
| <?php
header('Content-Type: text/plain; charset=ISO-8859-1');
if(isset($_POST["idmethode"])){
$idmethode=$_POST['idmethode'];
//On se connecte
mysql_connect("localhost","root","");
mysql_select_db("assvisual");
//Premier tableau (table methode)
//
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT idmethode,nom,description,lien FROM methode where idmethode="$idmethode"';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
// si on a récupéré un résultat on l'affiche.
if($total) {
// début du tableau
echo '<table align="center" width="728" border="0" bgcolor="#FFFFFF">'."\n";
echo '<tr>';
echo '<td bgcolor="#669999" width="101">IdMethode</td>';
echo '<td bgcolor="#669999" width="101">Nom</td>';
echo '<td bgcolor="#669999" width="140">Description</td>';
echo '<td bgcolor="#669999" width="145">Lien</td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur * colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['idmethode'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['nom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['description'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['lien'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result); |