Combobox sans recharge page en JS
Bonjour,
je sollicite votre aide pour un problème qui m'occupe depuis plusieurs semaines
j'ai un formulaire avec 5 combo box qui recharge la page à chaque fois me faisant perdre le résultat des premières
j'avais trouvé une function en JS qui permettait de lire une base mysql sans rechargement
j'ai bien un résultat, mais je ne vois pas comment construire mes combobox.
si une âme charitable pouvait me donner un coup de main, c'est la seule chose qui me manque pour terminer une gestion d'association
mon code d'appel de la function:
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
| / Déclare un tableau associatif javascript de la forme
// tableau["nomchamp"][n°ligne] == valeur
// contenant le résultat d'une requête mysql.
// $requete : chaine de caractères contenant la requête mysql à lancer.
// $id_table : nom de la variable tableau à déclarer en javascript.
//----------------- connexion BdD et Tables --------------------------
include("_connect7.php");
$table="types_cotisation";
//--------------------------------------------------------------------
//prepartion de la requete à envoyer à la function
$requete= "SELECT `id_type_cotis`, `libelle_type_cotis` FROM `$table`";
//id à passer à la requete
$id_table="id_type_cotis"; //nom de l'id de la table
//--------------------------------------------------------------------
//appel de la fonction JavaScript
//--------------------------------------------------------------------
mysql_to_js ($requete, $id_table);
//Traitement du return de la function dans une combobox
//
//
?> |
Ma fonction
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| //********************************************************************
//--------------------------------------------------------------------
// fonction JavaScript mysql_to_js
//--------------------------------------------------------------------
//********************************************************************
?>
<script language="JavaScript" type="text/javascript">
<?php
function mysql_to_js($requete, $id_table)
{
include("_connect7.php");
// ------------------ Requête mysql ----------------------------------
//echo $requete;echo"<br />"; test reception requete
$result = mysqli_query($SQL,$requete)
or die('Erreur SQL ! ----->'.$result.' '.mysqli_error($SQL).$requete);
$taille = mysqli_num_rows($result);
//echo $taille;echo"<br />";// test ok retourne nombre ecritures trouvées 7
//--------------------------------------------------------------------
// Ecriture de la déclaration du tableau javascript si la requête
// contient quelque chose, sinon déclaration d'un tableau null.
//--------------------------------------------------------------------
$numfields = mysqli_num_fields($result); // retourne le nombre de champs (colonnes)
//echo $numfields;echo"<br />";// test ok retourne 2 colonnes
if($numfields > 0)
{
// Déclaration de la variable tableau.
echo("var ".$id_table." = new Array(".$numfields.");\n");
// Déclaration des tableaux de valeurs pour chaque champs.
for($i=0; $i<$numfields; $i++)
{
echo($id_table."['".mysql_field_name($result, $i)."'] = new Array(".$taille.");\n");
echo"<br />";
//echo"<br />";
}
if($taille>0) // si un resultat est trouvé
{
echo "<br />";
$i=1; //i=0
while($rows = mysqli_fetch_assoc($result))
{
foreach($rows as $key => $value)
{
// echo'<pre>';print_r($rows); echo'</pre>';
echo($id_table."['".mysqli_escape_string($SQL,$key)."'][".$i."] = '".mysqli_escape_string($SQL,$value)."';<br >");
//echo"<br />";
//return ($return); // facultatif
}
$i++;
}
mysql_free_result($result);
}
}
else echo("var ".$id_table." = null;\n");
}
?>
</script> |
le résultat de sortie pour faire la combo
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| var id_type_cotis = new Array(2); id_type_cotis[''] = new Array(7);
id_type_cotis[''] = new Array(7);
id_type_cotis['id_type_cotis'][1] = '1';
id_type_cotis['libelle_type_cotis'][1] = 'Adhesion Internet+Axona';
id_type_cotis['id_type_cotis'][2] = '2';
id_type_cotis['libelle_type_cotis'][2] = 'Adhésion Internet Simple';
id_type_cotis['id_type_cotis'][3] = '3';
id_type_cotis['libelle_type_cotis'][3] = 'Membre Bienfaiteur Internet+Ax';
id_type_cotis['id_type_cotis'][4] = '4';
id_type_cotis['libelle_type_cotis'][4] = 'Membre Bienfaiteur+Internet';
id_type_cotis['id_type_cotis'][5] = '5';
id_type_cotis['libelle_type_cotis'][5] = 'Abonnement AXONA sans Adhésion';
id_type_cotis['id_type_cotis'][6] = '6';
id_type_cotis['libelle_type_cotis'][6] = 'Donateurs';
id_type_cotis['id_type_cotis'][7] = '7';
id_type_cotis['libelle_type_cotis'][7] = 'Adh Gratuite ou Couple'; |