Problème d'ajax dans un formulaire

Fermé
caroeLavoie Messages postés 1 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 27 janvier 2012 - 27 janv. 2012 à 14:51
[Dal] Messages postés 6062 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 24 mars 2023 - 27 janv. 2012 à 15:50
Bonjour,

Je suis présentement en train de créer un cms dans lequel je peux faire la gestion des pages. Il y a deux type de page, soit le premier qui se situe dans le menu principale et le second qui est une sous-section du menu principale. Dans mon formulaire de création de page, l'administrateur peut cliquer sur la checkbox menu-secondaire, afin de faire afficher une liste déroulante du menu principale pour choisir dans quel section on veux ajouter la sous-section. Ce bloc s'affiche en ajax.

Mon problème est que je suis incapable d'aller chercher la valeur du choix fait dans la liste déroulante. De plus, le navigateur affiche correctement le bloc inséré en ajax, cependant, quand je fais click droit > code source de la page, dans mon div ou est affiche mon block en ajax, il n'y a rien....

Voici donc mon code :

<script>
/* function ajax */
var check = 0;
function Ajax(noSecondaire) {

if(check == 1)
{
document.getElementById("contenu_ajax").style.display="none";
check = 0;
}
else {
if (window.XMLHttpRequest)
xmlhttp=new XMLHttpRequest();
else
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("contenu_ajax").style.display="block";
document.getElementById("contenu_ajax").innerHTML=xmlhttp.responseText;

}
}

xmlhttp.open("GET","ajax.php?secondaire="+noSecondaire,true);
xmlhttp.send();
check = 1;
}
}
</script>

<div class="grid_4">
<h2>Les propriétés de la page</h2>

<p class="champs">
<label for="secondaire">Menu secondaire</label><input name="secondaire" type="checkbox" onclick="Ajax('1');" />
</p>
<p class="erreur"></p>

<div id="contenu_ajax">

</div>


/* ********************** DANS LA PAGE "ajax.php" ****************** */

/* vérifie si $_GET actu existe */
if(isset($_GET['secondaire'])) {

$sec = $_GET['secondaire'];

$connect = connexion();
$requete4 = 'select * from page where menu_id != "" and sMenu_id = "";';
$resultat4 = mysql_query($requete4, $connect) or die("Une erreur est survenue : " . mysql_error());

echo'
<p class="champs">
<label for="menu_principale">Menu auquel il se rapporte</label>
<select name="menu_principale">';
while($ligne4 = mysql_fetch_array($resultat4))
{
$menu_principale=utf8_encode ($ligne4['menu_id']);
echo "
<option value='$menu_principale'>".utf8_encode ($ligne4['menu_nom'])."</option>
";

}
echo'</select>
</p>';

}

1 réponse

[Dal] Messages postés 6062 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 24 mars 2023 1 044
Modifié par [Dal] le 27/01/2012 à 15:52
Salut caroeLavoie,

Tu dois mettre un id à ton select :

<select id="menu_ppal" name="menu_principale">

Ensuite, tu accèdes à la sélection avec

x=document.getElementById("menu_ppal")   
choix=x.options[x.selectedIndex].text

(non testé)

Vois :
https://www.w3schools.com/jsref/dom_obj_select.asp
https://www.w3schools.com/jsref/coll_select_options.asp

Pour le source, c'est normal. Ce que le navigateur affiche est tiré du cache, et non pas du contenu du DOM


Dal
0