Transmettre une variable via ajax
bonsoir
je veux transmettre une variable d'une page php vers une autre page php via ajax, dans la 1 ere page php (trace.php) j'ai un input et une liste déroulante, quand je déroule la liste le contenu de ma page change en fonction de la valeur, cela est fait, mais le problème c'est que je veux transmettre avec cette liste déroulante un id.
voici ma page php (trace.php)
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
| <?php
echo '<link rel="stylesheet" href="styles.css">';
require('../../config.php');
require_once($CFG->dirroot.'/course/lib.php');
require_once($CFG->libdir.'/adminlib.php');
require_once($CFG->dirroot.'/report/suivi/lib.php');
$id = required_param('id',PARAM_INT);
echo "
<script type='text/javascript' src='js/liste_dynamique_ajax.js'></script>
<form action='trace.php' method='post'>
<input id='course' name='course' value=".$id." />
<center><label for='trace'>Evenement</label>
<select name='trace' id='trace' onchange='go()'>
<option value='-1'> Choisir un évenement</option>
<option value='1'>".get_string('nbr_acc', 'report_suivi')."</option>
<option value='2'>".get_string('nbr_page', 'report_suivi')."</option>
<option value='3'>".get_string('nbr_fichier', 'report_suivi')."</option>
<option value='4'>".get_string('nbr_msg', 'report_suivi')."</option>
<option value='5'>".get_string('nbr_elt', 'report_suivi')."</option>
<option value='6'>".get_string('nbr_tentativ', 'report_suivi')."</option>
</select></center>
</form>
<div id='resultat' style='display:inline'>
</div>
";
?> |
ma page js (liste_dynamique_ajax.js)
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
| function go(){
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){
leselect = xhr.responseText;
// On se sert de innerHTML pour rajouter les options a la liste
document.getElementById('resultat').innerHTML = leselect;
document.getElementById('resultat').value = leselect;
}
}
// Ici on va voir comment faire du post
xhr.open("POST","ajax_liste.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
sel = document.getElementById('trace');
idtrace = sel.options[sel.selectedIndex].value;
sel2 = document.getElementById('course');
idcourse = sel2.options[sel2.selectedIndex].value;
xhr.send("trace="+idtrace+"&id="+idcourse);
} |
et ma page php où je désire passé mon paramètre
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?php
if(isset($_POST["trace"])){
switch($_POST["trace"]){
case 1: echo $_POST["id"]; break;
case 2: echo 'nombre de page';break;
case 3: echo 'nombre de fichier';break;
case 4: echo 'nombre de message';break;
case 5: echo 'nombre délément';break;
case 6: echo 'nombre de tentative';break;
}
}?> |
$_post['id'] est inconnu
Merci bien d'avance pour votre aide