IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] informations complémentaires AJAX


Sujet :

AJAX

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut [AJAX] informations complémentaires AJAX
    Bonjour


    Dans une page j'ai un tableau qui est rempli par le visiteur. Les données ainsi saisies doivent être envoyées au serveur pour être traitées.

    Depuis deux jours je lis bouquins et tutoriels sans rien trouver qui corresponde à mon cas. La plupart du temps sont décrits comment récupérer des données sur le serveur et les renvoyer au client. Mais moi je souhaite collecter des données, avec javascript, puis les envoyer au serveur pour les traiter.

    Cela est-il possible en utilisant XMLHttpresquest?

    Ou puis je trouver un tutoriel capable enfin de m'éclairer?

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu récupères les données saisie et l'envoie au serveur via AJAX, du coté serveur tu récupères les données et les sauvegarder dans la base. Si l'enregistrement s'est bien effectué,tu retournes un petit message pour dire qu'il y a pas d'erreur et tu faits un append sur la page pour afficher les données saisie (faq).
    Cette problème est déjà résolue mais fait une recherche sur ce forum.

    A+.

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut
    En fait c'est bien comme cela que j'ai procédé, mais je n'obtiens rien.
    Je crée un objet XMLHttprequest, je lance la méthode open avec "POST", l'URL du PHP qui doit traiter les données (les déposer dans un dossier donné sous forme de fichier csv). Je lance la méthode setRequestHeader("Content-Type", "application/x-www-form-urlencoded") pour indiquer que je vais passer du texte en paramètre, et enfin je lance la méthode send avec ce texte(une chaine de caractères) en paramètre.

    Je ne vois rien arriver dans mon script php.

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    on peut voir ton Code?

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut
    Voici le js qui prépare la chaine de caractère et l'envoi, Traitement_commandes.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    function EnvoyerCommande() {
        /*
         *    A ce stade nous allons copier tous les éléments du tableau de la commande dans un fichier csv. Pour cela on utilse :
         *            1- le nom du dossier (dossier établissement) :
         *            2- la liste des modèles sélectionnés
         *            3- la liste des lignes de commandes
        */
        var cde = '';
        var ligne = '';
     
        ligne = dossierCourant + ";";
        for(var i=0;i<nbModeles;i++) {
            if( i<nbModeles-1 ) {
                ligne = ligne + listeModeles[i] + ";";
            }
            else {
                ligne = ligne + listeModeles[i] + ".";
            }
        }
        cde = cde + ligne;
            for(var i=0;i<listeEleves.length;i++) {
                ligne = listeEleves[i].toString() + ";";
                for(var j=0;j<nbModeles;j++) {
                    if( j<nbModeles-1 ) {
                        ligne = ligne + listeLGNCDES[i].qFields[j].value + ";";
                    }
                    else {
                        ligne = ligne + listeLGNCDES[i].qFields[j].value;
                    }
                }
                if( i<listeLGNCDES.length-1 ) {
                    cde = cde + ligne + '.';
                }
                else {
                    cde = cde + ligne;
                }
            }
     
        var request = getXHR();
        request.open("POST","./Scripts/Traitement_commande.php",true);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send(cde);
    }
    et le php, Traitement_commande.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <html>
    <?php
        // récupération des données et création des tables horizontales elles rangées dans une table verticale.
        // enregitrement de ces données sous forme de fichier csv
        echo 'et un peu de texte'.$_Post['cde'].'<br>';
    ?>
    </html>
    En réponse le script php affiche : et un peu de texte<br>

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.send("cde="cde);
    2-3-tu dois utiliser onreadystatechange pour récupérer le retour depuis le serveur coté javascript.

    A+.

  7. #7
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut
    avec : request.send("cde="cde);

    j'obtiens le message suivant : missing ) after argument list

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.send("cde="+cde);

  9. #9
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        var request = getXHR();
        request.open("POST","./Scripts/Traitement_commande.php",true);
        request.onreadystatechange = function() {
            if( request.readyState == 1 ) {            
                request.setRequestHeader("Content-Type", "text/xml");        //"application/x-www-form-urlencoded");            
            }
        }
        request.send("cde="+cde);
    J'obtiens toujours le même résultat, rien dans mon php

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     var request = getXHR();
        request.open("POST","./Scripts/Traitement_commande.php",true);
        request.onreadystatechange = function() {
            if(request.readyState == 4 && request.status == 200) {            
                alert (request.responseText);  
            }
        }
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.send("cde="+cde);
    A+.

  11. #11
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 76
    Par défaut
    merci andry.aime

    Je m'appuie sur un livre Javascript pour Web 2.0 (Thierry Templier) et sur ce que j'y ai compris, je n'avais aucune chance de trouver la solution. Il y est notamment écrit que "la méthode setRequestHeader ne peut être utilisée que lorsque la valeur de la propriété readyState de l'objet équivaut à open (1).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Informer en ajax la perte de session
    Par hadeslabs dans le forum MkFramework
    Réponses: 3
    Dernier message: 03/01/2016, 05h12
  2. [AJAX] Récupération information par ajax
    Par Pelote2012 dans le forum jQuery
    Réponses: 4
    Dernier message: 29/01/2013, 10h06
  3. [AJAX] Afficher des informations avec AJAX
    Par Chabanus dans le forum AJAX
    Réponses: 7
    Dernier message: 04/11/2009, 10h29
  4. [AJAX] Liste déroulante pour afficher les informations en ajax div ?
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/11/2006, 09h06
  5. [AJAX] Autocomplétion + méthode Ajax
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2005, 16h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo