Salut à tous
Me revoilà avec un nouveau problème.
J'ai deux listes déroulantes alimentées par SQL que je nomme "conditionnelles" car le fait de choisir une option de la première liste fait varier le contenu de la seconde liste.
Le résultat de la sélection de ces 2 listes vient s'enregistrer dans ma base SQL. Pour celà, je dois définir un "name" à chacune des listes pour que celà s'enregistre dans le bon champ de ma base.
Voiçi le script utilisé, il est en deux parties :
include "admin/configbdd.php";
function AfficherType($id)
{
$reponse = new xajaxResponse();//Création d'une instance de xajaxResponse pour traiter les réponses serveur
$type='';// Initialisation de la variable $type
//la selection des types de codes selon l'ID de la console choisie
$req = mysql_query("SELECT `Consoles_ID`,`Nom` FROM `Typescodes` where Consoles_ID= ".$id." ORDER BY Nom") or die(mysql_error());
$type .='<select name="Typescodes_ID" id="Typedecodes">'; // on commence la declaration de la liste des types de codes
$type .='<option value="00">Selectionnez un type de code</option>';
while($array = mysql_fetch_array($req))
{
$type .='<option value="'.$array['Nom'].'">'.$array['Nom'].'</option>';
}
$type .='</select>';
$reponse = new xajaxResponse('ISO-8859-1');
$reponse->addAssign("affType","innerHTML",$type); // affichage du contenu de $type (la liste des types de codes) dans le div affType
return $reponse->getXML();
}
require("xajax.inc.php");
$xajax = new xajax(); //On initialise l'objet xajax
$xajax->setCharEncoding('ISO-8859-1');
$xajax->decodeUTF8InputOn();
$xajax->registerFunction("AfficherType");
$xajax->processRequests();//Fonction qui va se charger de faire les requetes APRES AVOIR DECLARER NOS FONCTIONS
?>
Cette partie doit définir le contenu de la seconde liste en fonction du choix qui sera fait dans la première, en rouge, j'ai ajouter un "name=" mais il n'a aucun effet, la bdd enregistre toujours des zéros.
Ma page de la validation comporte ce code :
$sql = "INSERT INTO Codes
VALUES('','$Consoles_ID','$Regions_ID','$Typescodes_ID','$Nomdujeu','$Idjeu','$Cheats','$Source_ID')";
Tous les autres champs s'enregistre correctement sauf celui là....
A noter si ça a sont importance, comme je le disais, le code pour les listes est en 2 partie, la première partie ci-dessus qui est avant le header, et la seconde à l'endroit de la page ou je veux mes listes déroulante (donc dans le body). Et à savoir que dans mon cas, la première partie est dans ma page principale alors que le second morceaux est dans une page en "include"... je sais pas si ça peut jouer, le script lui fonctionne donc je sur pas sur mais je préfère vous donner toutes les infos.
Pour finir, je vous mets le second bout de code des liste des fois que je place pas le "name=" au bon endroit... :
<p><label class="left">Choix de la console :</label>
<?
$req = mysql_query("SELECT `ID`,`Nom` FROM `Consoles` ORDER BY Nom") or die(mysql_error());
?>
<select name="Consoles_ID" id="dept" onChange="xajax_AfficherType(document.getElementById('dept').value);">
<option value="00">Sélectionnez une console </option>
<?php
while($array = mysql_fetch_array($req))
{
?>
<option value="<?php echo ($array['ID']); ?>"><?php echo ($array['Nom']); ?></option>
<?php
}
?>
</select>
<div id="affType"></div>
</p>
En rouge le "name=" ajouter à ce second bout de code qui lui fonctionne.
Merci d'avance 