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] Impossible de joindre une page PHP


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut [AJAX] Impossible de joindre une page PHP
    Bonjour tout le monde,

    J'utilise ajax depuis de nombreux mois (+ de 18) et je n'ai jamais eu ce souci :

    J'obtiens ce message d'erreur :

    uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIXMLHttpRequest.status]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: http://Congres/AJAX/Enregistrer_guests.js :: anonymous :: line 8" data: no]

    Line 20
    quand je mets cette ligne :

    Je suis obligé de le mettre car je n'arrive pas dans la page PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("POST","../AJAX/Enregistrer_guests.php",true);
    L'alerte js située ici me donne une fenêtre vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        LeRetour = xhr.responseText; 
                alert(LeRetour);
    Voici le code 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
    function Enregistrer_guests(chaine_guests)
    {
        //alert(chaine_guests);
        var xhr = getXhr();
     
        xhr.onreadystatechange = function()
        {
            alert(xhr.status);
            //alert(xhr.readyState);
            if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0 ) )
     
            {
                LeRetour = xhr.responseText; 
                alert(LeRetour);
     
            }
        }
     
        //alert("ici");
        xhr.open("POST","../AJAX/Enregistrer_guests.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send("chaine_guests="+chaine_guests);
    }
    Voici mon code PHP :

    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
    <?php
        
        echo 'ici';
        include('../includes/connexion.php');
        
        $tableau_guests = explode('#',$_POST['chaine_guests']);
        
        for($i=0; $i < $tableau_guests.lenght; $i++)
        {
            $sql = "INSERT INTO guest (Complete_Name) VALUES('".$tableau_guests[$i]."')";
            echo $sql;
            //$query = mysql_query($sql);
        }
     
    ?>
    Je pense que le path est incorrect mais j'ai testé avec AJAX/Enregistrer_guests.php et avec Enregistrer_guests.php mais sans succès.

    Merci d'avance pour l'aide.

    Complément d'information :

    Je travail avec un onsubmit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="https://secure.ogone.com/ncol/test/orderstandard.asp" onsubmit="return verifier_data_guest();">
    J'arrive donc dans une fonction que voici :

    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
    function verifier_data_guest()
    {
     
    	chaine_guests = new String();
    	//je teste le nombre de zone de texte (guest) présente dans la page.
    	var i = 1; 
    	while(document.getElementById('zdt_firstname'+i)){ 
    	//je teste que ça contient bien quelque chose
    	if((document.getElementById('zdt_firstname'+i).value == '')||(document.getElementById('zdt_name'+i).value == ''))
    	{
    		alert("Please complete information for guest "+i);
    		return false;
    	}
    	else
    	{
    		chaine_guests+= document.getElementById('zdt_firstname'+i).value + ' ' + document.getElementById('zdt_name'+i).value+'#';
    		i++; 
    	}
     
     
    	} 
    	i = i -1;
     
    	Enregistrer_guests(chaine_guests);
     
    	return true;
    }
    et j'appelle la fonction Enregistrer_guests(chaine_guests);

    beegees

  2. #2
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    C'est plutôt length, pas lenght :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        for($i=0; $i < $tableau_guests.length; $i++)
        {
            $sql = "INSERT INTO guest (Complete_Name) VALUES('".$tableau_guests[$i]."')";
            echo $sql;
            //$query = mysql_query($sql);
        }
    Sinon c'est quoi la ligne 8 dans ton fichier .JS?

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par witch Voir le message
    C'est plutôt length, pas lenght :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        for($i=0; $i < $tableau_guests.length; $i++)
        {
            $sql = "INSERT INTO guest (Complete_Name) VALUES('".$tableau_guests[$i]."')";
            echo $sql;
            //$query = mysql_query($sql);
        }
    Sinon c'est quoi la ligne 8 dans ton fichier .JS?
    Salut,

    Merci pour ta réponse.

    J'ai modifié length, mais ce n'est pas cela qui pose problème.

    La ligne 8 c'est alert(xhr.status);

    Merci d'avoir pris le temps de regarder à mon code.

    beegees

  4. #4
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    J'aurais utilisé un bloc try catch pour que ça soit plus explicite et pour éviter d'afficher les pages d'erreur :

    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
    function Enregistrer_guests(chaine_guests)
    {
     
     
     try 
      { 
        //alert(chaine_guests);
        var xhr = getXhr();
     
        xhr.onreadystatechange = function()
        {
            alert(xhr.status);
            //alert(xhr.readyState);
            if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0 ) )
     
            {
                LeRetour = xhr.responseText; 
                alert(LeRetour);
     
            }
        }
     catch(err)
      {
      txt="Error description: " + err.description + "\n\n";
      txt+="Click OK to continue.\n\n";
      alert(txt);
      }
     
        //alert("ici");
        xhr.open("POST","../AJAX/Enregistrer_guests.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send("chaine_guests="+chaine_guests);
    }
    pour le path oui ça peut être à cause de ça, j'ignore un peu comment ton appli est construite, je ne peux pas deviner pour ça ...

  5. #5
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Merci pour ta réponse.

    J'ai décidé de ne pas me préoccuper du form (et du onsubmit) en changeant le bouton "Submit" en un bouton "button".

    J'appelle donc sur le onclick du bouton ma fonction qui contrôle les zones de texte et qui appelle ensuite ma fonction AJAX

    J'arrive dans le code PHP maintenant et j'obtiens ce message d'erreur :

    <b>Notice</b>: Use of undefined constant length - assumed 'length' in <b>C:\wamp\www\Congres\AJAX\Enregistrer_guests.php</b> on line <b>7</b><br />
    Ligne 7 est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	for($i=0; $i < $tableau_guests.length-1; $i++)
    Voici le var_dump du tableau :

    array(3) {
    [0]=>
    string(11) "Marc Dupont"
    [1]=>
    string(13) "Alain Brabant"
    [2]=>
    string(0) ""
    }
    Je ne vois pas pourquoi il met un 3e élément vide au tableau.

    J'avais aussi oublié de déclarer la fonction js.

    C'est donc un problème PHP pour l'instant, je peux changer mon message et aller le mettre dans le forum PHP;

    Encore merci pour l'aide.

    beegees

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0; $i < $tableau_guests.length-1; $i++)
    $tableau_guests.length en PHP ???

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0; $i < count($tableau_guests)-1; $i++)
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

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

Discussions similaires

  1. Impossible de lancer une page php sur serveur linux
    Par sikpat dans le forum Apache
    Réponses: 13
    Dernier message: 28/06/2013, 22h12
  2. ajax control toolkit dans une page PHP
    Par kortobi dans le forum Langage
    Réponses: 2
    Dernier message: 06/06/2012, 11h16
  3. Réponses: 4
    Dernier message: 01/07/2009, 13h37
  4. [FastCGI] Impossible de charger une page PHP
    Par Leobaillard dans le forum Apache
    Réponses: 4
    Dernier message: 26/02/2009, 11h02
  5. [AJAX] Validation W3C d'une page php+ajax
    Par sixieme-sens dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2008, 14h31

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