Bonjour j'ai un soucis je n'arrive pas a recuperer les values des select et input text remplit a l'aide d'ajax pour traiter un formualire.
J'ai une liste de sous-theme generer a partir du theme general selectionné et la cote est generer a partir du code de la sous categorie.
Mais lorsque je veux recuperer ma valeur par post : $_post["cote"] et $_post["sst"] sont vide
Voici le code :
Formulaire.php
<form name="ajout_ouvr" id="empr_ouvr" method="POST" action="traitement.php?type=test">
<select name='theme' id='theme' onChange='change_sstheme()'>
<option value=''>Aucun</option>
<?php
$enum = new Enumeration();
$res = $enum->tesThemes();
while($row = mysql_fetch_assoc($res)){?>
<option value="<?php echo $enum->non_accent($row['theme']);?>"><?php echo $enum->accent($row['theme']);?></option>
<?php }
?>
</select>
Sous-Thème principal :
<div id='sous_theme' >
<select name="sst" id="sst" onChange="change_cote()">
<option value=''>Choisir un thème</option>
</select>
</div>
<p>Cote : </p><div id="c">
<input type="text" name="cote2" id="cote2" value=""/>
<input type="submit" name="ajout" value="Valider">
ajax.js :
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest){ // Firefox et autres
xhr = new XMLHttpRequest();
}
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
function change_sstheme(){
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 && xhr.status == 200){
di = document.getElementById('sous_theme');
di.innerHTML = xhr.responseText;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxsstheme.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 du theme
theme = document.getElementById('theme').options[document.getElementById('theme').selectedIndex].value;
//alert(idtheme);
xhr.send("theme="+theme);
}
function change_cote(){
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 && xhr.status == 200){
di = document.getElementById('c');
di.innerHTML = xhr.responseText;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajaxcote.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
soustheme = document.getElementById('sst').options[document.getElementById('sst').selectedIndex].value;
//alert(idsoustheme);
xhr.send("sousTheme="+soustheme);
}
ajaxcote.php :
<?php
include ("../class/Enumeration.class.php");
if($_REQUEST["sousTheme"] != ''){
$enum = new Enumeration();
$res = $enum->taCoteAjax($_REQUEST["sousTheme"]);
while($row = mysql_fetch_assoc($res))
{?>
<div id="c">
<input type="text" name="coteajax" id="coteajax" value="<?php echo $row['code'];?>"/>
</div>
<?php }
}
else{
?>
<div id="c">
<input type="text" name="cote" id="cote" value=""/>
</div>
<?php } ?>
ajaxsoustheme.php:
<script type="text/javascript" src="<?php echo $server_dir;?>commun/ajax.js"></script>
<?php
include ("../class/Enumeration.class.php");?>
<div id='sous_theme' >
<select name="sst" id="sst" onChange="change_cote()">
<?php
if($_REQUEST["theme"] != ''){
$enum = new Enumeration();
$res = $enum->tesSousThemesAjax($_REQUEST["theme"]);
while($row = mysql_fetch_assoc($res)){?>
<option value='<?php echo $enum->non_accent($row["sous_theme"]);?>'><?php echo $enum->accent($row['sous_theme']);?></option>
<?php }
}
else {?>
<option value=''>Choisir un thème</option>
<?php }?>
</select>
</div>
Si quelqu'un voit le probleme...
hey[:o)]