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 :

Actualisation porte monnaie virtuel


Sujet :

Langage PHP

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Merci du coup de main.

    J'ai rectifié l'erreur mais il y a toujours l'actualisation de la page et non du porte monnaie quand je clique sur un produit.

    Que puis je faire d'autre pour tester?

    J'en es aussi profiter pour ajouter un message de confirmation comme ceci:

    Code javascript : 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
    49
    50
    51
    function getXhr(){
                                    var xhr = null; 
                    if(window.XMLHttpRequest) // Firefox et autres
                       xhr = new XMLHttpRequest(); 
                    else if(window.ActiveXObject){ // Internet Explorer 
                       try {
                                xhr = new ActiveXObject("Msxml2.XMLHTTP");
                            } catch (e) {
                                xhr = new ActiveXObject("Microsoft.XMLHTTP");
                            }
                    }
                    else { // XMLHttpRequest non supporté par le navigateur 
                       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                       xhr = false; 
                    } 
                                    return xhr
                }
     
    function Actualiser(id, name, prix){
                    var xhr = getXhr()
                    // On défini ce qu'on va faire quand on aura la réponse
                    xhr.onreadystatechange = function(){
                        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                        if (xhr.readyState == 4) {
                            if (xhr.status == 200 || xhr.status == 0){
                            // alert(xhr.responseText);
                            showConfirm(name, prix);
                            }
                            else{
                            alert ("erreur"+xhr.status);
                        }
            // xhr.responseText contient exactement ce que la page PHP renvoi
        }
                    }
                    xhr.open("GET","../modules/achat.php?id="+id,true);
                    xhr.send(null);
                }
     
    function showConfirm(name, prix)
                {
                    var answer=confirm("Confirmer l'achat de"+name+" au prix de "+prix+" Aums ?");
                    if (answer==true)
                    {
                        alert(xhr.responseText);
                        alert("Merci pour votre achat ! Allez en profiter dès maintenant !");
                    }
                    else
                    {
                        alert("Bonnes emplêtes !");
                    }
                }

    Malheureusement, comme rien ne s'affiche je ne peux pas tester si cette dernière modification marche réellement mais si vous avez des conseils à me donner sur cela, je prend volontiers !

  2. #22
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Garde toujours l'ancien fonction avant de la personnaliser avec plusieurs nouvelles erreurs pour que ça marche et c'est après que tu apportes des modifications.
    Avec ce nouveau code :
    1- la porté de la variable xhr est limitée dans la fonction Actualise().
    2- ton confirm n'est appelé qu'après la requête ajax.
    3- l'utilisation du nom de variable "name" est déconseillée en js

    A+.

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Merci pour les conseils.
    Concernant mon ancien code, je ne comprend toujours pas pourquoi ça ne marche pas. Mon php a pourtant l'air juste, ma fonction js aussi...

    J'ai l'impression que xhr.responseText ne contient rien...Comment voir cequ'il y a dedans? Une idée?

    J'en profite pour demander si il existe un tuto sympa qui permet de passer tout son code de mysql_ à PDO ?

    Merci d'avance.

  4. #24
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par idate Voir le message
    Merci pour les conseils.
    Concernant mon ancien code, je ne comprend toujours pas pourquoi ça ne marche pas. Mon php a pourtant l'air juste, ma fonction js aussi...

    J'ai l'impression que xhr.responseText ne contient rien...Comment voir cequ'il y a dedans? Une idée?
    Tant que tu as l'erreur 404, tu ne sauras pas ce que le fichier php retourne. Il faut corriger l'URL. Si tu n'as plus cet erreur, met un echo dans le php.
    Citation Envoyé par idate Voir le message
    J'en profite pour demander si il existe un tuto sympa qui permet de passer tout son code de mysql_ à PDO ?
    Regarde ici.

    A+.

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Je n'ai plus l'erreur 404 et j'ai placé des echo dans chaque else de mon php mais rien n'y fait...rien n'apparait sous forme de boite de dialogue js.

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Bon, en regardant plus finement c'était encore mon chemin url qui pose problème.

    Voici mon arborescence de dossiers, fichiers :

    http://www.hostingpics.net/viewer.ph...borescence.png

    Quand je suis dans la page fonctions.js, l'appel de ma page php est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","../modules/achat.php?id="+id,true);
    C'est bien logique? Je me place dans le dossier parent à "js" et je pointe achat.php du dossier modules.

    Apparemment ça ne l'est pas puisque j'ai encore erreur 404

  7. #27
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Non, l'URL dans js se réfère à la page qui l'utilise mais pas le fichier js.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","./achat.php?id="+id,true);

    A+.

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Merci pour l'anecdote. Cependant, l'erreur 404 est toujours présente !

    EDIT: l'url qui marche est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","modules/achat.php?id="+id,true);
    Bref, je n'ai plus l'erreur 404.

    Voici ce que m'affiche un clique sur un produit:

    http://www.hostingpics.net/viewer.php?id=708656jss.png

    C'est le contenu de xhr.responseText?

  9. #29
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par idate Voir le message
    C'est le contenu de xhr.responseText?
    Oui, et si tu lies bien, tu as une erreur du coté achat.php.
    Remplace les "!==" par "!=".

    A+.

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    La modification des "!==" par "!=" n'a rien donné. Toujours exactement le même message!

    Par contre, il y avait une ligne entre le if et le début de l'accolade qui n'avait rien à faire ici et c'est ce qui était la base de l'erreur.

    Mais, je reçois le texte: Vous n'avez pas l'autorisation d'accéder à la page.

    Du coup, mon isset($_SESSION['id']) qui à l'air d'être faux or, sur mon site je suis connecté avec mon profil donc logiquement il doit être vrai !

    Y a t-il un soucis avec les SESSIONS et le Javascript?

    Dans toutes mes autres pages php, les isset($_SESSION['id']) marchent toujours... J'ai l'impression de ne plus comprendre le php à force^^

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2013
    Messages : 155
    Points : 36
    Points
    36
    Par défaut
    Bon, après plusieurs modifications j'arrive enfin à actualiser mon porte monnaie! Et pour cela, merci beaucoup pour toutes les aides précieuses que vous m'avez fournis!

    Maintenant, il me reste deux choses à faire:

    -je voudrais que la page Boutique.php s'actualise juste après l'appel du javascript

    -Mettre un message de conformation après chaque clique

    Pour la 1ere, j'ai mis un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<head><meta http-equiv=\"refresh\" content=\"2; url=index.php?nav=Boutique\"></head>";
    mais évidemment, ça m'a affiché les balises dans la box alert. Du coup, dois je passer par javascript pour actualiser ma page?

    Pour la 2eme, j'avais fais un script de confirmation précédemment mais il était sujet à des erreurs. Suis je tout de même sur la bonne piste ou pas?

    Merci d'avance


    EDIT: Alors pour ce qui est du rechargement de ma page, c'est bon, j'ai ajouté un window.location.reload(); juste après le xhr.responseText.

    Pour la confirmation, j'ai modifié mon code comme ceci:

    Code javascript : 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
    function Actualiser(id, nom, prix)
                {
                    if (confirm("Confirmer l'achat de"+nom+" au prix de "+prix+" Aums ?"))
                        {
                            var xhr = getXhr()
                    // On défini ce qu'on va faire quand on aura la réponse
                            xhr.onreadystatechange = function(){
                        // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                                if (xhr.readyState == 4) {
     
                                    if (xhr.status == 200 || xhr.status == 0){
                            // alert(xhr.responseText);
                                    alert(xhr.responseText);
                                    window.location.reload();
                                    }
                                    else{
     
                                        alert ("erreur"+xhr.status);
                                    }
            // xhr.responseText contient exactement ce que la page PHP renvoi
                                }
                                xhr.open("GET","modules/achat.php?id="+id,true);
                                xhr.send(null);
                            }   
                        }
                    else
                        {
                            alert("Bonnes emplêtes !");
                        }
                }

    Mais je n'ai aucune boite de confirmation qui apparait lors du clique.

    Quelquechose cloche?? Oui mais quoi? je cherche à le savoir depuis 1heure sans trop de réponses...

    Des idées?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Ports séries virtuels
    Par Guillaume38 dans le forum Windows
    Réponses: 3
    Dernier message: 13/09/2017, 16h34
  2. creation d'une paire de port com virtuel
    Par KnightCoder dans le forum Windows
    Réponses: 1
    Dernier message: 17/09/2007, 12h00
  3. [WD11] Création Port COM Virtuel
    Par C-Faust dans le forum WinDev
    Réponses: 2
    Dernier message: 27/07/2007, 08h02
  4. piloter un port usb via un port serie virtuel?
    Par passion_info dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/10/2006, 12h56
  5. [DRIVER]Développer drivers port serie virtuel
    Par f.colo dans le forum Windows
    Réponses: 9
    Dernier message: 21/02/2006, 08h41

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