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] Formulaire avec double action


Sujet :

AJAX

  1. #1
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut [AJAX] Formulaire avec double action
    Bonjour !

    Je suis novice en php et j'ai un léger problème lors du submit d'un formulaire.

    Le formulaire est assez simple des champs recuperant les valeurs des variables php comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $amount="100";
     ?>
     
    <form  method="POST" action="https://adresse_du_site_externe" target="_parent">
    <input type="hidden" name="total" value="<?php echo($amount); ?>" />
    <input type="submit" name="payer" value="Payer" />
    Jusque la tout va bien ça marche.

    Le souci c'est que je dois enregistrer dans la BD les données lors du click avant le submit... et que je dois avoir qu'un seul bouton et qu'un seul formulaire.

    Je vois pas à quel moment appeler ma fonction qui exécutera la requête.
    (un bouton avec une action onclick ? )

    Merci pour vos lumières !

  2. #2
    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 : 54
    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 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par rednight Voir le message
    Le souci c'est que je dois enregistrer dans la BD les données lors du click avant le submit
    Et d'où te vient cette extravagante exigence ?
    En gros, qu'est-ce qui est susceptible d'être modifié entre le moment où tu appuies sur le bouton et le moment où le formulaire est envoyé ?

    Enfin, certains termes de ta page me font vraiment peur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="total" value="<?php echo($amount); ?>" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="submit" name="payer" value="Payer" />
    Rassure moi : tu n'utilises quand même pas ton input hidden pour stocker le montant d'un panier

  3. #3
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Si (et je comprends ton étonnement) .

    J'ai repris la doc fourni par le site externe pour le paiement en ligne.

    Leur page attends en _post des valeurs d'un formulaire et ils donnent comme instruction ce que j'ai expliqué.

    Je suis bien évidement ouvert à toutes sortes d'idées...

    Pour la requête c'est pour créer l'enregistrement en bd que si l'utilisateur clic sur payer, et non à l'ouverture de la page, sinon je te rejoins sur ce point entre l'ouverture et le submit rien ne change.

  4. #4
    Membre actif
    Inscrit en
    Avril 2009
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 308
    Points : 231
    Points
    231
    Par défaut
    Voici l'exemple fourni, si ça peut éclaircir la chose.

    Je cherche une autre alternative, pour envoyer les valeurs depuis le php et afficher la page, (j'ai essayé avec xmlhttprequest mais vers un serveur distant ça fonctionne pas)

    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
    <?php
    $key = "000000000000000";
    $ctx_mode = "TEST";
    $amount = 100;
    $capture_delay = "";
    $currency = "978";
    $payment_cards = "";
    $payment_config = "SINGLE";
    $site_id = "00000000";
    // Exemple de génération de trans_id basé sur l'horodatage
    $ts = time();
    $trans_date = date("YmdHis", $ts);
    $trans_id = date("His", $ts);
    $validation_mode = "";
    $version = "V1";
    $url_return = "http://url.de.retour/retour.php";
    $signature_contents = $version . "+" . $site_id . "+" . $ctx_mode . "+"
    . $trans_id . "+" . $trans_date . "+" . $validation_mode . "+"
    . $capture_delay . "+" . $payment_config . "+" . $payment_cards . "+"
    . $amount . "+" . $currency . "+" . $key;
    $signature = sha1($signature_contents);
    ?>
    <html>
    <head>
    </head>
    <body>
    <form method="POST" action="https://systempay.cyberpluspaiement.com/vads-payment/">
    <input type="hidden" name="ctx_mode" value="<?php echo($ctx_mode); ?>" />
    <input type="hidden" name="amount" value="<?php echo($amount); ?>" />
    <input type="hidden" name="capture_delay" value="<?php echo($capture_delay); ?>" />
    <input type="hidden" name="currency" value="<?php echo($currency); ?>" />
    <input type="hidden" name="payment_cards" value="<?php echo($payment_cards); ?>" />
    <input type="hidden" name="payment_config" value="<?php echo($payment_config); ?>" />
    <input type="hidden" name="site_id" value="<?php echo($site_id); ?>" />
    <input type="hidden" name="trans_date" value="<?php echo($trans_date); ?>" />
    <input type="hidden" name="trans_id" value="<?php echo($trans_id); ?>" />
    <input type="hidden" name="validation_mode" value="<?php echo($validation_mode); ?>" />
    <input type="hidden" name="version" value="<?php echo($version); ?>" />
    <input type="hidden" name="url_return" value="<?php echo($url_return); ?>" />
    <input type="hidden" name="signature" value="<?php echo($signature); ?>" />
    <input type="submit" name="payer" value="Payer" />
    </form>
    </body>
    </html>
    Édite : J'essaye finalement de procéder comme ceci.
    Les données sont envoyés au php via javascript avec XmlHttprequest en post à un .php local qui lui enregistre dans la base de donnée.
    Puis j' appel l'url du site de paiement en php (avec curl ? ou redirection via header? ).

    Je sais pas si c'est la bonne manière de faire ou si ça marchera...je reviens vers vous dès que j'ai un peu de code qui tourne.

Discussions similaires

  1. Formulaire avec deux actions
    Par trend dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2008, 14h25
  2. [AJAX] formulaire avec AJAX
    Par saadelph dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/05/2008, 09h22
  3. [AJAX] Formulaire avec deux listes dynamiques liées
    Par gotcha5832 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/03/2007, 10h40
  4. formulaire avec plusieurs action
    Par civodultrebor37 dans le forum Langage
    Réponses: 4
    Dernier message: 11/01/2007, 17h53
  5. Formulaire avec comme action="index.php?confirm.php" POSSIBLE ?
    Par jiojioforever dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2006, 11h13

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