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

JavaScript Discussion :

[AJAX] transferer variable ajax


Sujet :

JavaScript

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut [AJAX] transferer variable ajax
    Bonjour,

    Je suis en train de faire mon premier script en ajax.
    J'aimerai savoir comment faire pour transmettre une variable au fichier php sans passer par l'url...

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    var fichier="sauvegarde.php?id_utilisateur="+id_membre;
    xhr_object.open("GET", fichier, false);
    ...
    Ca c'est la méthode classique...

    En fait je dois transmettre le contenu d'un div, et il y a beaucoup de données dedans...
    Ca ne va pas poser de problème avec cette méthode?

    Si oui y a t'il un autre moyen de transmettre des données?

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    tu peux utiliser la méthode send() de ton objet xhr.
    Cf. la FAQ (§ 3)

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Voici mon code:
    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
     
    function file(fichier,donnees)
    {
         if(window.XMLHttpRequest) // FIREFOX
              xhr_object = new XMLHttpRequest();
         else if(window.ActiveXObject) // IE
              xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
         else
              return(false);
     
    	 //fichier =chemin vers fichier sauvegarde.php avec les parametres derriere
         xhr_object.open("POST", fichier, false);
         xhr_object.send(donnees);
         if(xhr_object.readyState == 4) return(xhr_object.responseText);
         else return(false);
    }
     
    file("sauvegarde.php","id_utilisateur="+id_membre+"&id_site="+id_site+"&id_page="+id_page+"&contenu_page="+document.getElementById('OrangeEditeur').innerHTML+"&login="+login+"&mail="+mail+"&password="+pass1+"&nom_site="+nom_site+"&nom_page="+nom_page);
    Puis dans le fichier sauvegarde.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $id_utilisateur=$_POST["id_utilisateur"];
    $id_site=$_POST["id_site"];
    $id_page=$_POST["id_page"];
    $contenu_page=$_POST["contenu_page"];
    $login=$_POST["login"];
    $mail=$_POST["mail"];
    $password=$_POST["password"];
    $nom_site=$_POST["nom_site"];
    $nom_page=$_POST["nom_page"];
    Est ce que mon code est bon?
    Ca n'a pas l'air de marcher...

    Il faut savoir que ma variable $contenu page peut contenir beuacoup de données... Cela peut il poser problème?

    Quel taille de données peut on transmettre en POST?

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par calitom Voir le message
    Ca n'a pas l'air de marcher...
    C'est à dire ?
    Erreur ? avec quel code retourné ? N° ligne ?
    Effet ?
    Il faut savoir que ma variable $contenu page peut contenir beuacoup de données... Cela peut il poser problème?
    Restreint artificiellement le volume pour tes tests ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai ajouté ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(xhr_object.readyState == 4)
    	 {
    	 	alert(xhr_object.responseText);
    	  return(xhr_object.responseText);
    	 }
    Et le alert me retourne
    Erreur de connexion au serveur
    J'ai diminué artificiellement la taille des données, et ca n'y change rien...

    D'ou ca peut venir?

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par calitom Voir le message
    D'ou ca peut venir?
    Ben ... du serveur, non ?

    Si tu tappes l'url contenu dans "fichier" directement dans la barre d'adresse du nav, ça donne quoi ?

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Le chemin vers le fichier php est bon...
    Donc je ne pense pas que ca vienne de là...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par E.Bzz Voir le message
    Si tu tappes l'url contenu dans "fichier" directement dans la barre d'adresse du nav, ça donne quoi ?
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    Je viens de me rendre compte que c'est un message d'erreur renvoyé par ma fonction de connection à ma base de données...
    En fait mon problème, c'est que je n'arrive pas à récupérer mes variables dans le fichier php...

    Pourquoi?
    Je les transmet bien en POST avec send(), puis pour les recuperer, je fais bien $_POST['mavariable']...

    Qu'est ce qui ne va pas?

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    J'ai trouvé!!
    Je met la réponse au cas où ca peut aider quelqu'un:
    J'ai testé en GET comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    Et ca marchait...

    Puis quand je passais en post, ca ne marchait pas...
    En fait il fallait rajouter la balise suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    xhr_object.open("POST", fichier, false);
    xhr_object.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xhr_object.send(donnees);
    Et maintenant ca marche au poil!!

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

Discussions similaires

  1. [AJAX] récupérer variable post
    Par hokidoki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/03/2009, 17h07
  2. [AJAX] Faire passer une variable AJAX dans autre chose qu'un <div></div>
    Par fixbraun dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 19/02/2009, 15h34
  3. [AJAX] Retour AJAX dans variable PHP
    Par mulot49 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/06/2007, 14h00
  4. [AJAX] Ajax et variables de session php
    Par sorlok dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/05/2007, 17h22
  5. [AJAX] Variables de session
    Par escteban dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 03/05/2007, 17h47

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