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] erreur XMLHttpRequest


Sujet :

AJAX

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut [AJAX] erreur XMLHttpRequest
    Bonjour,

    je souhaite faire une partie "pari sportif gratuit" sur mon site et je suis entrain de faire le panier afin d'ajouter les paris.
    Je ne savais pas du tout comment faire étant donné que je débute en langage web et après quelques recherches j'ai commencé a le faire avec du javascript/ajax.
    Avec ce que j'ai lu sur le cours AJAX/XMLHttpRequest, j'ai essayé de faire "un panier" mais malheureusement ca ne marche pas(le contraire m'aurais surpris ).
    Si quelqu'un pouvait analyser mon code et me dire où je me suis trompé ou me dire si je suis completement a l'ouest pour realiser ce que je veux, ca serais vraiment sympa.
    Lorsque j'execute ce code le pari ne s'ajoute pas dans le panier.

    # ma ligne de pari dans le fichier index.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
    16
     
    <div class="idaalar">
    	<table>
    		<tr class="ecart"></tr>
    		<tr id="tableau">
    			<td class="heure">21:00</td>
    			<td class="match">TEAM 1 - TEAM 2</td>
    			<td class="cote"><a href="#" name="1" onclick="ajoutpari(this, this.name);" class="bcote">2.40</a></td>
    			<td class="ecart"></td>
    			<td class="cote"><a href="#" name="N" onclick="ajoutpari(this, this.name);" class="bcote">2.85</a></td>
    			<td class="ecart"></td>
    			<td class="cote"><a href="#" name="2" onclick="ajoutpari(this, this.name);" class="bcote">2.55</a></td>
    		</tr>
    		<tr class="ecart"></tr>
    	</table>
    </div>
    # au moment du clic sur une cote, on fait appel a la fonction suivante:
    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
    45
    46
    47
    48
     
    function ajoutpari(valeur, element)
    {
    	var xhr = null; 
     
    	if(window.XMLHttpRequest)
    	{
    		xhr = new XMLHttpRequest(); 
    	}
    	else if(window.ActiveXObject)
    	{
    		xhr = new ActiveXObject("Microsoft.XMLHTTP");
    	}
    	else
    	{
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest!!"); 
    		return null; 
    	} 
     
    	var tabcell = document.getElementById('tableau').cells;
    	var match = tabcell[1].innerHTML;
    	var equipe1 = match.substring(0, match.indexOf('-'));
    	var equipe2 = match.substring(match.lastIndexOf('-') + 1);
    	var indice = element;
    	var cote = valeur.innerHTML;
    	var resultat = null;
    	if(indice == "1")
    	{
    		resultat = equipe1;
    	}
    	else if(indice == "2")
    	{
    		resultat = equipe2;
    	}
    	else
    	{
    		resultat = "Nul";
    	}
    	xhr.open('GET', 'http://localhost/betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote); 
    	xhr.onreadystatechange = function() 
    	{
            if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) 
    		{	
    			document.getElementById('selections').innerHTML += xhr.responseText;
            }
        };
        xhr.send(null); 
    }
    # fichier selection.php qui est normalement censé afficher le pari dans le panier si j'ai pas fais n'importe quoi:
    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
     
    <?php
     
    header("Content-Type: text/html");
     
    $match = (isset($_GET["param1"])) ? $_GET["param1"] : NULL;
    $resultat = (isset($_GET["param2"])) ? $_GET["param2"] : NULL;
    $cote = (isset($_GET["param3"])) ? $_GET["param3"] : NULL;
     
    $i = rand(0,999999999);
     
    echo '<div name="bet" id="ligne'.$i.'" class="pari">';
    echo '<table>';
    echo '<tr>';
    echo '<td class="case1">';
    echo '<div class="match">'.htmlentities($match).'</div>';
    echo '<div class="resultat">Résultat: <span class="resulteam">'.htmlentities($resultat).'</span></div>';
    echo '</td>';
    echo '<td class="case2">';
    echo '<span class="cote">'.htmlentities($cote).'</span>';
    echo '</td>';
    echo '<td class="case3">';
    echo '<a href="javascript: destroyligne(\'selections\', \'ligne'.$i.'\');" class="delpari"><img src="../images/delete.gif" alt="" /></a>';
    echo '</td>';
    echo '</tr>';
    echo '</table>';
    echo '</div>';
    # code(index.php)où va etre inserer le pari dans le panier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <div class="panier">
    	<div class="titreright">Votre sélection</div>
    	<div id="selections" class="selections">
     
    	</div>			
    </div>
    merci d'avance de votre aide

  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,

    1-
    xhr.open('GET', 'http://localhost/betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    Utilise un chemin relatif.
    2-
    xhr.onreadystatechange = function()
    {
    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0))
    {
    document.getElementById('selections').innerHTML += xhr.responseText;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    xhr.onreadystatechange = function(){
            if (xhr.readyState == 4){ 
    			if (xhr.status == 200 || xhr.status == 0){	
    				document.getElementById('selections').innerHTML += xhr.responseText;
    			} else{
    				alert("Erreur: "+xhr.status);
    			}
    		}
        }
    Essaie d'utiliser Firebug pour voir où est l'erreur.

    A+.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    mon navigateur m'affiche cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Horodatage*: 17/05/2012 22:59:43
    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://localhost/js/function.js :: <TOP_LEVEL> :: line 527"  data: no]

  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
    Il y a quoi à la ligne 527 du fichier function.js?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    ligne 527:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alert("Erreur: "+xhr.status);

  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
    Si l’exécution passe à cette ligne, cela veut dire que ton status n'est ni à 200, ni à 0. Donc tu as d'erreur.
    Tu est sur quelle navigateur et quelle version?
    As-tu déjà modifier ton code pour utiliser un chemin relatif pour l'url?
    Essaie d'utiliser Firebug et montre nous ce qu'il donne comme erreur.

    A+.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    je suis sur mozilla firefox 12.0.

    j'ai remplacé le lien par un lien relatif mais rien n'a changé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open('GET', '../betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    et sur firebug, la console ne m'affiche aucune erreur et web developper m'affiche la meme erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Horodatage*: 18/05/2012 14:24:48
    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://localhost/js/function.js :: <TOP_LEVEL> :: line 527"  data: no]

  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
    Citation Envoyé par pantouflex Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open('GET', '../betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    Dites, c'est sur deux différents projet?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    c'est a dire deux differents projet?
    c'est un site avec differentes parties.
    le fichier .js et les autres fichiers ne sont pas dans le meme dossier.

    les fichiers selection.php et index.php se trouvent dans le dossier betgame:
    www => betgame

    le fichier function.js se trouve dans le dossier js:
    www => js

    du coup l'adresse est correct non il faut revenir dans le dossier www (.../)
    et il faut aller dans betgame/selection.php

    dites moi si je me trompe.

  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,

    Le chemin de la page appelée ne se réfère pas au chemin du fichier js mais celui de la page qui l'appelle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open('GET', './selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    A+.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    ok merci pour l'info je ne savais pas.

    Malheureusement meme apres avoir changé le lien ca ne change rien, toujours la meme erreur.

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonsoir,
    dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open('GET', 'http://localhost/betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    il n'y a pas le paramètre de synchro, il devrait être à true.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    httpRequest.open('GET', url, true); // pour asynchrone

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Par défaut
    je l'ai ajouté et ca ne marche toujours pas

    ca peut venir de quoi sinon?

  14. #14
    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
    Citation Envoyé par NoSmoking Voir le message
    Bonsoir,
    dans la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open('GET', 'http://localhost/betgame/selection.php?param1=' + match + '&param2=' + resultat + '&param3=' + cote);
    il n'y a pas le paramètre de synchro, il devrait être à true.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    httpRequest.open('GET', url, true); // pour asynchrone
    Ce paramètre est optionnel .
    @pantouflex, tu peux le tester sur un autre navigateur?

    A+.

  15. #15
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Ce paramètre est optionnel .

    effectivement le paramétrage par défaut est true, ce qui sommes tout est des plus logique...

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

Discussions similaires

  1. [AJAX] Erreur de reception d'XMLHttpRequest
    Par Isalyn dans le forum AJAX
    Réponses: 5
    Dernier message: 02/02/2010, 21h42
  2. [AJAX] Erreur XMLHttpRequest ..
    Par Lunthear dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/04/2007, 12h29
  3. [AJAX] Objets XMLHttpRequest <-> Sql
    Par kij dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 05/11/2006, 12h41
  4. [Ajax] Problème XMLHttpRequest Firefox
    Par wwave dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/09/2006, 15h42
  5. [AJAX] Erreur système : -1072896658 Code 0
    Par ericw78 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2006, 19h55

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