Controle formulaire avec ajax

WRInaute impliqué
Bonsoir,

Voilà, je voudrais contrôler les saisies d'un formulaire avec AJAX (pour ne pas devoir rafraîchir la page et ne pas perdre les données déjà enregistrées).

Ma requête AJAX est bonne et elle dirige vers la page xxx.php qui contient ceci :
Code:
/* Ligne 1 */
$A1 = $_POST['A1'];
$A2 = $_POST['A2'];
$A3 = $_POST['A3'];
$A4 = $_POST['A4'];
$A5 = $_POST['A5'];
$A6 = $_POST['A6'];
$A7 = $_POST['A7'];
$A8 = $_POST['A8'];
$A9 = $_POST['A9'];

/* Ligne 2 */
$B1 = $_POST['B1'];
$B2 = $_POST['B2'];
$B3 = $_POST['B3'];
$B4 = $_POST['B4'];
$B5 = $_POST['B5'];
$B6 = $_POST['B6'];
$B7 = $_POST['B7'];
$B8 = $_POST['B8'];
$B9 = $_POST['B9'];

Apparement, je ne récupère pas les valeurs des différentes variables.

Est-ce quelqu'un peut m'aider ?
 
WRInaute occasionnel
Salut,

Il faudrait qu'on puisse voir le formulaire (du moins une partie)... parce que là y'a pas d'erreur! :)
Astuce: tes 18 lignes peuvent être remplacées par
Code:
extract($_POST);
 
WRInaute impliqué
Voila une partie du formulaire :

Code:
<?php 
			if ($chiffre[0][0] == ''){
			print('<td headers="ligne 1, colonne 1." width="40" class="td"><input name="A1" value="" onMouseOver="if (autoFocus) { this.focus(); }" type="text" class="case" maxlength="1" o/></td>'); }
			else {
			print('<td headers="ligne 1, colonne 1." width="40" class="td"><input readonly name="A1" value="' . $chiffre[0][0] . '" type="text" class="case-fix" maxlength="1" /></td>'); }?>			
            <?php 
			if ($chiffre[0][1] == ''){
			print('<td headers="ligne 1, colonne 2." width="40" class="td"><input name="A2" value="" onMouseOver="if (autoFocus) { this.focus(); }" type="text" class="case" maxlength="1" /></td>'); }
			else {
			print('<td headers="ligne 1, colonne 2." width="40" class="td"><input readonly name="A2" value="' . $chiffre[0][1] . '" type="text" class="case-fix" maxlength="1" /></td>'); }?>
            <?php 
			if ($chiffre[0][2] == ''){
			print('<td headers="ligne 1, colonne 3." width="40" class="td"><input name="A3" value="" onMouseOver="if (autoFocus) { this.focus(); }" type="text" class="case" maxlength="1" /></td>'); }
			else {
			print('<td headers="ligne 1, colonne 3." width="40" class="td"><input readonly name="A3" value="' . $chiffre[0][2] . '" type="text" class="case-fix" maxlength="1" /></td>'); }?>

Voilà la requete ajax :

Code:
<script type='text/JavaScript'>
			var xhr = null; 
	 
	 		function getXhr(){
				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; 
				} 
			}
			
			/**
			* Méthode qui sera appelée sur le click du bouton
			*/
			function go(){
				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){
						alert(xhr.responseText);
					}
				}
				xhr.open("GET","controle.php",true);
				xhr.send(null);
			}
		</script>

J'espère que cela pourra aider parce que moi, je ne vois pas où est mon erreur.
 
WRInaute occasionnel
et pas de message d'erreur ?
Ton tableau $_POST est déclaré, mais il est vide ?
C'est ajax qui vide ton tableau ? (là je touche pas trop, en fait!) ?
J'dis pt'être une bêtise mais à la fin ça :
Code:
xhr.open("GET","controle.php",true);

c'est pas la méthode d'envoi ? Plutôt POST à la place non ?
 
WRInaute impliqué
Ouais mais si je mets POST, je dois déclaré tous les paramètres dans xhr.send(ICI);. Effectivement, quand je fais un print_r, mes 81 variables sont vides.

Je ne comprends pas ???
 
Discussions similaires
Haut