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

JavaScript Discussion :

[AJAX] Lancer une page Ajax via un formulaire et un javascript


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut [AJAX] Lancer une page Ajax via un formulaire et un javascript
    Bonjour à tous,

    Je dois réaliser un script pour un vote via un lien html, et je dois le faire en ajax et javascript à cause du cache sur le site.
    Voici mon brief
    En cliquant sur un bouton/picto de notation "utile" ou "inutile" un javascript est déclenché.

    Le javascript lance une page en ajax avec en parametre url l'id de l'avis.

    La page lancée par l'ajax :

    - vérifie si un avis n'a pas déjà été inséré pour cette id d'avis, ce jour et avec cette adresse ip

    L'ajax doit récupérer le contenu de la page qui doit retourner false si un vote a été trouvé et true dans le cas contraire.

    Si un enregistrement est trouvé une alerte javascript avertit l'internaute qu'il y a déjà eu un avis déposé dans les dernières 24H.

    Si ce n'est pas le cas, un enregistrement est placé dans la table `avis_note`.
    Il contient l'id de l'avis, le type (produit/service), la date & heure, l'ip de l'internaute et son vote (utile/inutile)
    Une alerte javascript remercie l'internaute pour son vote.
    Pour le formulaire soumis par un lien html et un onclick="monform.submit();", c'est bon, mais après je bloque.

    Si vous avez des idées

    Merci d'avance

  2. #2
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    En fait, tu ne devrais pas utiliser de formulaire mais plutôt un onclick sur ton bouton/picto qui déclencherait une requête Ajax contenant l'avis que l'utilisateur veut tenter d'ajouter.

    Coté serveur, tu récupères l'avis, fait les traitement qui vont bien et renvoie en guise de réponse true ou false selon le cas. Ensuite, quand javascript récupère la réponse à sa requête Ajax, tu affiches ton alert en conséquence.

    Si tu n'as jamais fait d'Ajax, commence par lire un des tutos du site (ex celui la) et ce que tu cherches a faire va subitement devenir limpide ^^

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Merci pour ta réponse

    Effectivement ça m'ide. J'ai pris l'exemple 1 qui me parait être le plus proche de ce que je veux faire mais il y a juste une partie où je ne sais pas quoi mettre:
    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
    function ajax()
    {
        var xhr=null;
     
        if (window.XMLHttpRequest) { 
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) 
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //on appelle le fichier reponse.txt
        xhr.open("GET", "http://gael-donat.developpez.com/web/intro-ajax/reponse.txt", false);
        xhr.send(null);
     
        alert(xhr.responseText);
    }
    dans le xhr.open, je place mon fichier avec des variables en parametres que je passe dans la fonction

    Mais pour le alert, je ne sais pas par quoi remplacer le responseText...

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Par défaut
    Salut

    En fait à la place de http://gael-donat.developpez.com/web/intro-ajax/reponse.txt , tu va mettre le lien vers un fichier PHP.

    Dans ton fichier PHP tu fais les requêtes qui vont bien et tu place dans un echo ce que tu veux renvoyer au script. Le script traitera la valeur renvoyée par la valeur de xhr.responseText .

    Le premier argument de xhr.open te dit la méthode utilisée pour appeler le fichier PHP et le troisième te dit si c'est en mode synchrone ou non.

    tu vois ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    J'ai fait comme ca

    fichier .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
    function ajax(avis_id,note)
    {
        var xhr=null;
     
        if (window.XMLHttpRequest) {
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //on appelle le fichier reponse.txt
        xhr.open("POST", "www4/include/modules/valid_vote.php?avis_id='avis_id'&note='note'", false);
        xhr.send(null);
     
        alert(xhr.responseText);
    }
    Dans mon fichier php, j'ai des echo, mais lorsque je clique sur mon lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="#" onclick="javascript:ajax(\''.$avis_id.'\',\'inutile\');" class="lien-bleu">Avis inutile</a>
    je n'ai rien dans mon alerte, alors que j'ai fait un echo 'test' dans mon fichier php....

    Ca peut être le lien de mon fichier .php qui est mauvais?

  6. #6
    Membre Expert Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Par défaut
    Il te manque le callback sur onreadystatechange

Discussions similaires

  1. génération d'une page PHP via un formulaire
    Par sebastien123 dans le forum Langage
    Réponses: 26
    Dernier message: 27/02/2015, 22h47
  2. Lancer une apli java via un formulaire HTML
    Par reventlov dans le forum Débuter
    Réponses: 1
    Dernier message: 10/10/2011, 22h46
  3. Modifier une page HTML via un formulaire HTML
    Par neo76910 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/07/2009, 11h41
  4. [AJAX] ajax dans une page ajax.
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/09/2008, 10h28
  5. [AJAX] passage de valeur pour une page php depuis un formulaire
    Par Ministar dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 21h29

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