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] Exécution d'un script php avec retour


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut [AJAX] Exécution d'un script php avec retour
    Bonjour,

    je dois confectionner pour une entreprise, un script PHP, cependant, je me suis rendu compte que lorsque l'on clique plusieurs fois rapidement, les valeurs traitées dans ce script sont erronées.

    Ces données étant important, je me dois d'avoir aucune erreur.

    On ma conseillé de l'AJAX, mais je ne comprend pas trop le système. J'ai parcourus vite fait le forum, la faq et quelques cours, mais étant pressé, je du sauter la section;

    J'aurai aimé savoir ce que je devais utiliser dans l'ajax. Je n'en ai jamais fait. On ma dit que lorsque l'on clic sur le bouton, sa effectue ce qu'on lui dit et qu'il attend le retour, mais je ne vois pas comment faire,


    je vous remercie

  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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Lance la requête en mode synchrone pour que l'utilisateur ne puisse pas cliquer sur le bouton jusqu'à la fin du traitement.
    Montre nous ensuite ton code pour que l'on puisse corriger.

    A+.

  3. #3
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    J'essaie de comprendre un peu l'ajax pour l'instant, je teste ceci cependant, je vois pas comment enlever un attribut au boutton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function button(){
    	$.ajax({
    		url:      'like.php?id=<?php echo $pid; ?>&p=1',
    		success:  function(data){
    		}
    		complete: function(){
    			// reactiver button
    		}
    	})
    }
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <button disabled="disabled" onClick="button()">Executer</button>

  4. #4
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Et comment tu comptes cliquer sur un bouton qui est inactif ?
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    L'attribut disabled, c'était pour tester si ça fonctionnait. Mais le truc, c'est de le mettre que quand je clic dessus et de l'enlever a la fin

  6. #6
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Bonjour, je viens pour les nouvelles.

    Alors j'ai cherché longtemps hier soir et pour l'instant j'en suis arrivé à:

    Mon JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(function() {
        $("[role='basic']").click(function() { basic(1, this); });
        function basic(state, div) {
            $.post('', { state: state},
                function(data) {
                    alert(data);
             });
        }
    });
    Mon bouton
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a title="Basic"  role="basic"></a>0<

    Mon alert fonctionne parcontre quand je cible mon fichier php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $(function() {
        $("[role='basic']").click(function() { basic(1, this); });
        function basic(state, div) {
            $.post('../modif.php', { state: state},
                function(data) {
                    alert(data);
             });
        }
    });
    Rien ne se passe.

    J'ai
    Dossier/modif.php
    Dossier/js/state.js

    Je ne comprend pas l'erreur

  7. #7
    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 : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Dommage que tu ne fasses pas le débogage minimal : regarder ce que te dit la console de développement (F12). Tu aurais tout de suite vu l'erreur.

    Lorsque tu inclues un script dans ta page, tu inclues un script dans ta page. Ce qui signifie que le code est exécuté non pas depuis le fichier JavaScript que tu intègres, mais depuis la page qui l'intègre. En gros, le chemin que tu indiques via l'attribut src, c'est uniquement le chemin désignant où aller chercher ton script.
    La conséquence, c'est que l'URL indiquée dans ton appel AJAX est fausse. Donc tu reçois en retour une erreur 404 et tu ne passes jamais dans success.
    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

  8. #8
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Je savais que l'erreur était qu'il ne trouvait pas la page. Cependant, je n'avais aucune idée du chemin a mettre. J'ai du en tester 100 000.

    L'erreur, c'était le s en trop dans le nom du fichier,

    Merci, je reviendrai si je galère

  9. #9
    Membre régulier
    Homme Profil pro
    Cyberdocumentaliste
    Inscrit en
    Janvier 2013
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Cyberdocumentaliste

    Informations forums :
    Inscription : Janvier 2013
    Messages : 79
    Points : 70
    Points
    70
    Par défaut
    Bonjour, je reviens vers vous après une petite avancée.

    J'ai donc maintenant ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $(function() {
     
        $("[role='basic']").click(function() { basic(1, this); });
        function basic(vote, div) {
            var msg = $(div).attr("pid");
     
            $.post('modif.php',  { act: (vote == 1 ? 1 : -1), p: id, n : 1},
                function(result) {
     
     
             });
        }
    });
    Le but étant que lorsque je clic sur le bouton,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a  p='.$cur_post['id'].' role="basic" style="background: url(img/sugg.png)">Sugg</a>
    je puisse changer le background et changer le message Sugg.

    J'ai testé diverses choses mises dans ma fonction result mais je n'y arrive toujours pas.
    Après avoir vu des codes sur google, je pense que je dois me diriger vers

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[role='basic']").attr("style", "background: url(img/endsug.png");
    mais ça ne fonctionne pas, que faire ? et comment change la valeur de Sugg. (cette valeur est stockée dans une variable php.

    merci pour votre aide,

    EDIT: maintenant
    TypeError: null is not an object (evaluating '$("[role='basic']").click')

  10. #10
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Bonjour,
    il y a un principe fondamental à adopter quand on fait du développement Web : ne pas faire confiance à ce qui vient du client. N'importe qui peut ouvrir la console de son navigateur et ajouter du JavaScript dans la page pour faire une requête qui échappera à ton contrôle.

    Le contrôle doit être fait côté serveur, car ton code PHP n'est pas modifiable par le client (sauf grosse faille de sécurité). Dans l'état actuel des choses, ton script PHP n'est pas capable de traiter correctement une rafale de requêtes successives. Idéalement, tu devrais corriger ce problème avant de t'attaquer au JavaScript.

    Je te suggère d'ouvrir un topic dans le forum PHP.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

Discussions similaires

  1. Problème d'exécution d'un script php avec crontab
    Par jakj82 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 04/02/2014, 12h52
  2. exécuter un script php avec onunload
    Par Sh4dow49 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/08/2008, 22h09
  3. Exécuter script php avec crontab
    Par Sh4dow49 dans le forum Administration système
    Réponses: 1
    Dernier message: 29/07/2008, 15h49
  4. exécution d'un script PHP avec wget
    Par Dud225 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 28/06/2007, 15h31
  5. [AJAX] faire tourner un script php en boucle avec ajax
    Par mitmit dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 05/05/2007, 10h33

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