[AJAX] R�cup�ration de variables Javascript
Bonjour,
Tout d'abord merci par avance pour vos r�ponses, j'esp�re que vous serez nombreux � m'aider. :P
J'ai un fichier resultat.php qui affiche deux tableaux dans lesquels nous avons des variables float.
J'ai 10 cellules (dans des div) qui proposent une liste d�roulante. En fonction du choix s�lectionn�, nous obtenons un score dans une autre cellule, calcul� gr�ce � une fonction jvscript.
Voila le code de la cellule qui affiche la liste d�roulante :
Code:
1 2 3 4 5 6 7 8 9
|
echo "<td class='celda_pequenya_2'>";
echo "<select class='select2' id='d48' onchange='baremos(this,notad48)'>";
echo "<option selected='selected' value='-1'>Elija un baremo</option>";
for ($i=0;$i<count($niveles_d48);$i++){
echo "<option value=$i>".$niveles_d48[$i]."</option>";
}
echo "</select>";
echo "</td>"; |
Et voila la fonction JavaScript qu'elle appelle :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<script language="javascript">
function baremos(desplegable,nota)
{
var nombre_celda = "nota"+desplegable.id ;
var nivel = desplegable.value;
var celda = document.getElementById(nombre_celda);
if (nivel!=-1){
celda.innerHTML = nota[nivel];
}else{
celda.innerHTML ='';
}
}
</script> |
De ce fichier resultat.php, je g�n�re un PDF gr�ce � la m�thode PhpToPdf. Pas de souci, mon PDF appara�t correctement.
N�anmoins, je n'ai pas trouv� le moyen de r�cup�rer la valeur s�lectionn�e dans la liste d�roulante et la valeur calcul�e, car vous le savez, le code php est ex�cut� avant le code jvscript.
Je me suis donc dit que la meilleure m�thode pour r�cup�rer ces valeurs �taient d'utiliser AJAX. Je suis un peu novice mais j'ai lu pas mal de tuto... Mais... Je ne suis pas s�re de ce que je fais et j'aurai besoin des lumi�res de quelqu'un...
J'ai essay� d'adapter un code pour ce faire, mais �tant donn� que ma fonction jvscript peut �tre appel�e plusieurs fois, je ne sais pas comment g�rer cela...
J'ai donc rajout� entre les balises <script> :
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
|
function maFonctionAjax(unParametre,action)
{
var MonAjax;
if (window.XMLHttpRequest){
MonAjax = new XMLHttpRequest(); // Mozilla, Safari, Chrome, Firefox...
} else if (window.ActiveXObject) {
MonAjax = new ActiveXObject('Microsoft.XMLHTTP'); // IE
} else {
alert("Change navigator...");
MonAjax = false;
}
MonAjax.open('POST',"resultados_pdf.php",true); //méthode pos, fichier php cible
MonAjax.onreadystatechange = function()
{
if (MonAjax.readyState == 4 && MonAjax.status == 200)
{
if(action=="baremos") { document.getElementById('cela.innerHTML').innerHTML = MonAjax.responseText;}
if(action=="baremos1") { document.getElementById('nombre_cela').innerHTML = MonAjax.responseText;}
if(action=="baremos2") { document.getElementById('celda').innerHTML = MonAjax.responseText;}
}
}
MonAjax.setRequestHeader('Content-type','application/x-www-form-urlencoded');
MonAjax.send('unParametre='+unParametre+'&action='+action);
} |
Et j'ai aussi rajout� dans ma fonction jvscript "baremos" ce code :
Code:
1 2 3 4
|
maFonctionAjax(celda.innerHTML,"baremos");
mafonctionAjax(nombre_celda, "baremos1");
mafonctionAjax(celda, "baremos2"); |
Mais l� je suis un peu perdue et j'ai l'impression de mal m'y prendre avec AJAX... Un petit conseil ? :)