Controle formulaire avec ajax

Consultez la formation au REFERENCEMENT naturel Google de WebRankInfo / Ranking Metrics


vinche999
WRInaute impliqué
WRInaute impliqué
 
Messages: 646
Inscription: 14 Nov 2004

Controle formulaire avec ajax

Message le Jeu Sep 14, 2006 17:22

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: Tout sélectionner
/* 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 ?


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Sep 14, 2006 17:52

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: Tout sélectionner
extract($_POST);


vinche999
WRInaute impliqué
WRInaute impliqué
 
Messages: 646
Inscription: 14 Nov 2004

Message le Jeu Sep 14, 2006 18:07

Voila une partie du formulaire :

Code: Tout sélectionner
<?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: Tout sélectionner
<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.


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Sep 14, 2006 18:43

et la balise <form> ?


vinche999
WRInaute impliqué
WRInaute impliqué
 
Messages: 646
Inscription: 14 Nov 2004

Message le Jeu Sep 14, 2006 18:59

Tout est correcte, la balise est un peu plus haut dans le code.


biscuit
WRInaute impliqué
WRInaute impliqué
 
Messages: 519
Inscription: 5 Juin 2006

Message le Jeu Sep 14, 2006 19:06

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: Tout sélectionner
xhr.open("GET","controle.php",true);


c'est pas la méthode d'envoi ? Plutôt POST à la place non ?


vinche999
WRInaute impliqué
WRInaute impliqué
 
Messages: 646
Inscription: 14 Nov 2004

Message le Jeu Sep 14, 2006 19:10

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 ???


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation REFERENCEMENT naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité