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

Langage PHP Discussion :

[PHP-JS] Php et javascript


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Par défaut [PHP-JS] Php et javascript
    Bonjour,
    Je suis entrain de developper un intranet.
    J'ai un petit soucis en fait j'envoie des données via javascript vers un fichier php. Le problème c'est quand j'affiche le contenu de POST il n'y a rien aucune donnée n'a été transmise.
    Vous trouverez ici le code que j'ai fait:

    La fonction Javascript:
    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
    function envoie(data){
     
    			if(window.XMLHttpRequest) {xhr_object = new XMLHttpRequest(); alert("début");}
    					else if(window.ActiveXObject){ xhr_object = new ActiveXObject("Microsoft.XMLHTTP");  alert("milieu");}
    				else {
    						  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    						   return;
    						}
                            alert(data);
    						xhr_object.open("POST", "essai.php");
    						xhr_object.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
    			            xhr_object.send(data);
    			            alert(data);
     
     
     }

    ou on l'appele dans le fichier Html:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a  href="essai.php" target="sujet" onClick="javascript:envoie('comprdecomp');"  >Comporesion/Décompression</a></li>
    et le code PHP pour tester: je l'ai developpé juste pour savoir si je reçois quelque chose:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    	header('Content-type: text/html; charset=iso-8859-1');
        if(count($_POST) > 0) {
    	    echo "Données reçues en POST:";
    	    foreach($_POST as $v)
    	      echo strrev(utf8_decode($v)).":";
    	 }else
    	 {
    	  echo 'Aucune donnée n\'a été reçue par "'.basename($_SERVER["PHP_SELF"]).'"...';
    	  }
     
    ?>

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    C'est un problème AJAX et non php. En fait, tu n'attends pas la réponse que t'envoie essai.php. Il faut utiliser xhr_object.onreadystatechange.

  3. #3
    Membre Expert
    Avatar de eric.pommereau
    Homme Profil pro
    Ingénieur, pôle cartographie
    Inscrit en
    Décembre 2004
    Messages
    715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur, pôle cartographie
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2004
    Messages : 715
    Par défaut
    Bonjour,

    Si l'alert javascript s'éxécute, quel est précisément le message de ton 'alert(data);' ?

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Par défaut
    le premier alert affiche milieu et les deux autres comprdecomp

  5. #5
    Membre averti
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Par défaut
    quand je mets ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    xhr_object.onreadystatechange = function() {
    						   if(xhr_object.readyState == 4) alert(xhr_object.responseText);
    						}
    il s'affiche un alert avec aucune donnée n'a été transmise

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Il faut encore teste le status 200
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(xhr_object.readyState == 4)
    {
      if (xhr_object.status == 200)
      {
        alert(xhr_object.responseText);
      }
    }
    On avance.

  7. #7
    Membre averti
    Inscrit en
    Février 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 54
    Par défaut
    avec ça : l'alert sui il y a au milieu ne s'affiche pas.

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

Discussions similaires

  1. [PHP-JS] PHP dans du code javascript
    Par ChrisMan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/05/2007, 14h51
  2. Réponses: 7
    Dernier message: 08/10/2005, 08h59
  3. [PHP-JS] php & javascript
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2005, 11h18
  4. [PHP-JS] Arguments PHP d'une fonction javascript
    Par Néo-Tony dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/12/2004, 12h06
  5. [PHP-JS] Php dans un script javascript
    Par nebule dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/11/2004, 10h38

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