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 :

POST ou requête XMLHttpRequest


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut POST ou requête XMLHttpRequest
    Bonjour

    Petite question bête à tous :

    Dans un formulaire donné par une tierce partie (Paypal), ils fournissent le code d'un bouton dans une <form>

    Cela m'embête beaucoup pour une transaction que je voudrais faire, car je voudrais que la page ne se rafraîchisse pas, et surtout j'ai 3 boutons sur la même page dont je voudrais que l'utilisateur ne clique que sur un seul, les 2 autres étant faits "par dessous" ().

    Je me demandais (question bête, mais dont je n'ai pas la certitude de la réponse), si j'envoyais une requête XMLHttpRequest avec POST contenant le contenu de la form, cela reviendrait-il au même que d'avoir l'action POST dans la form ?

    Du point de vue du destinataire est-ce identique ??

    (en particulier avec les tests "isset" sur le bouton submit ?)


    Merci à tous

  2. #2
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 346
    Par défaut
    Oui dans les 2 cas tu envois une requête POST , Tant que les en-têtes et le corps de la requête sont correctement formatés, le serveur ne saura pas (et ne se souciera pas) de la méthode utilisée pour envoyer la requête.

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Yaisse !!!

    Merci...

    Je le pensais, mais vu que c'est pour des paiements je préfère être certain... (j'avais indiqué question bête.. ça semble évident mais je suis un esprit tordu....)


    Et comment satisfaire au critère isset sur le bouton submit ?

    Si on met dans une page php, on aurait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form><input name=.....> <button type=submit name=ok .....></form>
    .....
    <?php 
       if (isset(ok)){
      }
    ?>
    Vu que la page d'arrivée est chez une tierce partie il est possible qu'ils aient ce test

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    Tant que les en-têtes et le corps de la requête sont correctement formatés, le serveur ne saura pas (et ne se souciera pas) de la méthode utilisée pour envoyer la requête.
    Et dans un POST par défaut comme ceci :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
      <input type="hidden" name="cmd" value="_s-xclick" />
      <input type="hidden" name="hosted_button_id" value="XXXX" />
      <input type="hidden" name="currency_code" value="CAD" />
      <input type="image" src="https://www.paypalobjects.com/fr_CA/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" title="PayPal, le réflexe sécurité pour payer en ligne" alt="Acheter" />
    </form>

    comment peut-on savoir les détails de la requête ?

    est-ce que je transforme la div en FormData pour l'envoyer si je n'aii plus de form ?

    J'ai une bête petite fonction javascript :

    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
    function post(url,a,cb,d,erf,sy){var r=gXhr();   
        r.addEventListener("load",function(){
               if(this.status>=200 && this.status<400){
                      if(cb!= null){
                            cb(d,this.responseText);}
                      else 
                          alert("REP "+this.responseText)}
              else{
                   if(erf!=null)erf(this.status+" "+this.statusText);
                  else alert("Erreur réseau "+this.status+" "+this.statusText)}
        });
     
        r.addEventListener("error",function(){
                     if(erf!=null)erf("Erreur réseau "+this.status+" "+this.statusText);
                     else alert("Erreur réseau "+this.status+" "+this.statusText)
     
        });
        r.open("POST",url,sy);
        r.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        r.send(a);
    }

    Sur le forum Javascript on m'a dit d'utiliser "fetch", qui formatte en JSON, mais j'aimerais comprendre le mécanisme qu'il faudrai sans fetch...
    Mais cette fonction post ci-dessus fait-elle exactement le meme travail qu'un POST php ?

  5. #5
    Membre émérite
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 486
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Mais cette fonction post ci-dessus fait-elle exactement le meme travail qu'un POST php ?
    Oui le serveur recevra une requête http, peu importe que la requête soit envoyée depuis un formulaire ou via XHR/Fetch

    Citation Envoyé par souviron34 Voir le message
    comment peut-on savoir les détails de la requête ?
    Tu peux utiliser l'onglet Réseau dans les outils de développement de ton navigateur pour analyser les requêtes ajax :
    https://firefox-source-docs.mozilla....tor/index.html
    https://firefox-source-docs.mozilla....ils/index.html

    Si tu n'es pas déjà à l'aise avec l'utilisation de XHR ou Fetch, commence par faire quelques exercices avec un projet de test.
    L'API Fetch est une évolution de l'API XHR, regarde comment fonctionne les 2 API mais préfères si possible l'utilisation de Fetch.
    https://fr.javascript.info/fetch
    https://fr.javascript.info/xmlhttprequest

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Pytet Voir le message
    Oui le serveur recevra une requête http, peu importe que la requête soit envoyée depuis un formulaire ou via XHR/Fetch
    Merci



    Citation Envoyé par Pytet Voir le message
    Tu peux utiliser l'onglet Réseau dans les outils de développement de ton navigateur pour analyser les requêtes ajax :
    https://firefox-source-docs.mozilla....tor/index.html
    https://firefox-source-docs.mozilla....ils/index.html
    Je le savais mais j'avais oublié Merci de pailler à ma mémoire défaillante


    Citation Envoyé par Pytet Voir le message
    Si tu n'es pas déjà à l'aise avec l'utilisation de XHR ou Fetch, commence par faire quelques exercices avec un projet de test.
    L'API Fetch est une évolution de l'API XHR, regarde comment fonctionne les 2 API mais préfères si possible l'utilisation de Fetch.
    https://fr.javascript.info/fetch
    https://fr.javascript.info/xmlhttprequest
    Xhr je pratique depuis longtemos..
    Fetch non...

    Merci

    Et merci à tous pour votre participation. Je clos le sujet


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

Discussions similaires

  1. xhr et php méthode POST
    Par lib-inform dans le forum AJAX
    Réponses: 3
    Dernier message: 26/06/2016, 11h23
  2. Réponses: 0
    Dernier message: 12/03/2015, 17h43
  3. Réponses: 6
    Dernier message: 29/07/2014, 11h23
  4. [AJAX] XHR.sendAndLoad POST plante depuis peu
    Par speedev dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 14/08/2008, 23h01
  5. [AJAX] IE6:impossible de recuperer les parametres envoyés par xhr.send (POST)
    Par netmanouch dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 26/06/2008, 10h26

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