Affichage informatif en fonction de la sélection

Eléphanteau du PHP | 17 Messages

12 mai 2005, 16:35

Bonjour,

Pour mon site style 'caddie', je voudrais peaufiner certaines choses.

J'ai un fichier qui récapitule la commande du client. Sur cette page, le client doit choisir le moyen de paiement au moyen de button.
Ci-joint le code de cette partie.

Code : Tout sélectionner

<tr valign=top> <td width=25 class=normal nowrap><? if ($erreurs["paiement"]) echo $fleche_droite; ?></td> <td class=normal>Paiement* :</td> <td class=petit> <input type="radio" name="paiement" value="chèque" <?php if($frm["paiement"]=="chèque") echo "checked" ?>>Chèque<br> <input type="radio" name="paiement" value="virement" <?php if($frm["paiement"]=="virement") echo "checked" ?>>Virement <br><input type="radio" name="paiement" value="Paypal" <?php if($frm["paiement"]=="Paypal") echo "checked" ?>>Paypal <br><input type="radio" name="paiement" value="Moneybookers" <?php if($frm["paiement"]=="Moneybookers") echo "checked" ?>>Moneybookers </td> </tr>
Deux pages après, le client confirme sa commande avec un texte explicatif en fonction du paiement choisi (Enfin c'est ce que j'aimerais qu'il se passe mais j'y arrive pas)

Voici la partie du code où est affiché le texte.

Code : Tout sélectionner

<p><font class=normal> Merci de votre confiance, votre commande a été enregistrée avec succès. <br> <br> Si vous avez chosi le paiement par <strong>chèque</strong>, merci d'effectuer les deux d&eacute;marche suivantes :<br> - Imprimer le bon de commande : <a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal"> <b>cliquez ici</b></a>. <br> - Envoyez votre règlement d'un montant de <? $caddie_total=$_SESSION['caddie_total']; echo($caddie_total); ?> &euro; à :</font></p> <p><font class=normal><br> <?php print_company(); ?> </font></p> <p align="left"><font class=normal> Si vous avez choisi le paiement par <strong>virement</strong>, merci d'effectuer le virement du montant de <b><?=$caddie_total?></b> &euro; en mentionnant en communication le num&eacute;ro de celle-ci.</font></p>
C'est un bout du code car c'est long mais j'ai crée un texte complet pour expliquer ce qu'il faut faire pour chaque moyen de paiement.
J'aimerais juste qu'il s'affiche l'information relative au moyen de paiement choisi par le client deux pages avant.

Merci d'avance pour votre aide ultra précieuse :)

@+

Dim

Eléphant du PHP | 281 Messages

12 mai 2005, 16:43

Bajouuur,
utilise les variables de sessions ;)

c'est à dire tu mémorise la valeur de la variable paiment
$_SESSION['paiment']=$frm["paiement"];
Pour le rapeller après :
$paiment=$_SESSION['paiment'];
       echo($paiement);
voila j'espère que c'est clair;)

Eléphanteau du PHP | 17 Messages

12 mai 2005, 17:02

Salut,

merci pour cette réponse mais c'est pas très clair...Je suis un grand bouché :)

Si j'emploie les sessions comme tu l'indiques, ça va juste m'afficher le type de paiement sélectionné. Mais ça ne va pas me sélectionner et m'afficher le texte prédéfini en fonction du type de paiement sélectionné par le client ???

Désolé, je vais essayer de me déboucher un peu :)

Eléphant du PHP | 281 Messages

12 mai 2005, 17:05

Ben si tu arrive a transferer ceci, après il te suffit de dire par exemple :
if ($tavar==paypal)
{
ton texte sur le paypal
}
Sinon tu fais un copier de chaque texte (bon c'est de l'arache un peu mais ca marchera mais les puriste gueuleron;)) [/php]

Eléphanteau du PHP | 17 Messages

12 mai 2005, 17:09

Merci du tuyau, bon la prochaine fois, j'essaierai directement ma 1ère idée :) Je voulais faire comme ça mais je me suis dit que c'était trop simple.... Bon je tente la chose tout à l'heure et je te tiens informé.

Merci :)

Eléphant du PHP | 281 Messages

12 mai 2005, 17:13

Bon comme dit c'est pas la solution optimal des puristes mais bon c'est une solutions ;) et puis en prog faut pas hésité, essaye et si ca merde ben c'est que c'était pas bon ;)

Eléphanteau du PHP | 17 Messages

13 mai 2005, 11:28

Bonjour,

Merci à slipndi pour tes conseils. La 1ère partie fonctionne mais par le IF

Voici mon code. J'imagine que je dois mettre un <? et ?> quelque part mais je trouve pas
Vous avez choisi le paiement par 
<?php $paiement=$_SESSION['paiement']; 
       echo($paiement); ?>
<p><font class=normal> Merci de votre confiance, votre commande a été enregistrée 
  avec succès. <br>
  <br>
 if ($paiement=="chèque") 
 { 
   Si vous avez chosi le paiement par <strong>chèque</strong>, merci d'effectuer 
  les deux d&eacute;marche suivantes :<br>
  - Imprimer le bon de commande : <a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal"> 
  <b>cliquez ici</b></a>. <br>
  - Envoyez votre règlement d'un montant de 
  <? $caddie_total=$_SESSION['caddie_total']; 
echo($caddie_total); ?>
  &euro; à :</font></p>
<p><font class=normal><br>
 <?php
print_company();
?>
  </font></p>
  }
D'avance merci pour les conseils

Eléphant du PHP | 281 Messages

13 mai 2005, 11:42

Vous avez choisi le paiement par
<?php $paiement=$_SESSION['paiement'];
       echo($paiement); ?>
<p><font class=normal> Merci de votre confiance, votre commande a été enregistrée
  avec succès. <br>
  <br><? //ici l'ouverture
if ($paiement=="chèque")
{
   echo ("Si vous avez chosi le paiement par <strong>chèque</strong>, merci d'effectuer
  les deux d&eacute;marche suivantes :<br>
  - Imprimer le bon de commande :");
?>
<a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal">
  <b>cliquez ici</b></a>. <br>
  - Envoyez votre règlement d'un montant de
  <? $caddie_total=$_SESSION['caddie_total'];
echo($caddie_total); ?>
  &euro; à :</font></p>
<p><font class=normal><br>
<?php
print_company();
}//endif
?>
  </font></p>
  }
je te promet pas un fonctionnement du premier coup j'ai fais ca assez en speed ;)

Eléphanteau du PHP | 17 Messages

13 mai 2005, 11:47

Merci, je teste ça ce soir :)

Eléphanteau du PHP | 17 Messages

13 mai 2005, 17:05

Test effectué et cela ne marche pas du tout.

Quand je mets ce que tu m'indiques juste pour un paiement, forcément, tout mon texte pour les différents paiements s'indiquent (logique vu qu'il n'y a qu'un IF)

par contre, quand j'applique la même structure de IF pour l'autre texte, ça me fait un erreur à la dernière ligne de ma page.

Que faire

Voici le code avec deux textes. (J'ai enlevé le IF vu que ça va pas)

Code : Tout sélectionner

<font class=titre>Etape 3. Confirmation de votre demande </font><br> <p></p> Vous avez choisi le paiement par <?php $paiement=$_SESSION['paiement']; echo($paiement); ?> <p><font class=normal> Merci de votre confiance, votre commande a été enregistrée avec succès. <br> <br> Si vous avez chosi le paiement par <strong>chèque</strong>, merci d'effectuer les deux d&eacute;marche suivantes :<br> - Imprimer le bon de commande : <a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal"> <b>cliquez ici</b></a>. <br> - Envoyez votre règlement d'un montant de <? $caddie_total=$_SESSION['caddie_total']; echo($caddie_total); ?> &euro; à :</font></p> <p><font class=normal><br> <?php print_company(); ?> </font></p> Si vous avez choisi le paiement par <strong>virement</strong>, merci d'effectuer le virement du montant de <b><?=$caddie_total?></b> &euro; en mentionnant en communication le num&eacute;ro de celle-ci.</font></p> RIB

Eléphanteau du PHP | 17 Messages

19 mai 2005, 12:55

Help please...... :)

Mammouth du PHP | 19672 Messages

19 mai 2005, 13:00

Salut,

merci pour cette réponse mais c'est pas très clair...Je suis un grand bouché :)

Si j'emploie les sessions comme tu l'indiques, ça va juste m'afficher le type de paiement sélectionné. Mais ça ne va pas me sélectionner et m'afficher le texte prédéfini en fonction du type de paiement sélectionné par le client ???

Désolé, je vais essayer de me déboucher un peu :)
Ok, voici un tire-bouchon :D

À partir du moment ou tu as le moyen de paiement dans cette variable, dans ta page d'affichage d'info, il te faut tester la valeur de cette variable pour afficher le message approprié. Tu peux faire ça par exemple avec un switch:
<?php
switch($_SESSION['paiement'])
{
    case "cheque" :
        // affichage pour paiement par chèque
    break;
    case "paypal" :
        // affichage pour paiement par paypal
    break;
}
etc...
Est-ce que c'est plus clair comme ça ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 17 Messages

19 mai 2005, 13:50

Merci pour ce tuyau. Je teste tout ça fin de journée quand j'aurai survécu à mes 3546054343 mails de retard :) :) :)

Eléphanteau du PHP | 17 Messages

19 mai 2005, 23:27

Test effectué sans succès. Il doit y avoir un problème de <? ou de ?> mais je ne comprends pas.

On dirait que le premier ?> ferme le <?php ouvert
 <?php 
switch($_SESSION['paiement']) 
{ 
    case "cheque" : 
        // affichage pour paiement par chèque 
		merci d'effectuer 
  les deux d&eacute;marche suivantes :<br> 
  - Imprimer le bon de commande : 
<a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal"> 
  <b>cliquez ici</b></a>. <br> 
  - Envoyez votre règlement d'un montant de 
  <? $caddie_total=$_SESSION['caddie_total']; 
echo($caddie_total); ?> 
  &euro; à :</font></p> 
<p><font class=normal><br> 
<?php 
print_company(); 
?>
  </font></p> 

    break; 
    case "paypal" : 
        // affichage pour paiement par paypal 
		<p align="left">Si vous avez choisi le paiement par <strong>PAYPAL</strong>, merci 
  de vous rendre sur le site <a href="http://www.paypal.com/fr" target="_blank">paypal</a> 
  et d'effectuer le paiement de <b> 
  <?=$caddie_total?>
  </b> &euro; sur notre compte paypal <em>[email protected]</em> en indiquant 
  le num&eacute;ro de commande (Merci de rajouter 4% au montant de votre commande 
  pour les frais demand&eacute;s par ce site)</p>
    break; 
}
Merci encore pour votre aide

Mammouth du PHP | 19672 Messages

19 mai 2005, 23:33

Simplifie-toi la vie: mets le contenu de chaque case dans un fichier externe et dans le switch/case, mets des includes, tu te mélangeras moins les crayons.

Petite astuce de travail : quand tu ouvres un <?php, mets tout de suite après le ?> et ensuite seulement mets le contenu PHP dedans, pareil pour les " ", les ' ', les { } etc... et quand tu dois insérer du html dans du php, met le ?> immédiatement suivi du <?php puis après seulement ajoutes le contenu html.

Ton bout de script devrait ressembler à ceci :
<?php
switch($_SESSION['paiement'])
{
    case "cheque" :
    // affichage pour paiement par chèque
?>
merci d'effectuer les deux d&eacute;marche suivantes :<br>
  - Imprimer le bon de commande :
  <a href="javascript:OpenWin2('<?=$wwwroot?>/factures/bdc.php?id=<?=$commandeid?>',550,450,'bdc');" class="normal"><b>cliquez ici</b></a>. <br>
  - Envoyez votre règlement d'un montant de <? $caddie_total=$_SESSION['caddie_total']; echo($caddie_total); ?> &euro; à :</font></p>
<p><font class=normal>
<?php
print_company();
?>
  </font></p>
<?php
    break;
    case "paypal" :
    // affichage pour paiement par paypal
?>
        <p align="left">Si vous avez choisi le paiement par <strong>PAYPAL</strong>, merci
  de vous rendre sur le site <a href="http://www.paypal.com/fr" target="_blank">paypal</a>
  et d'effectuer le paiement de <b>
  <?=$caddie_total?>
  </b> &euro; sur notre compte paypal <em>[email protected]</em> en indiquant
  le num&eacute;ro de commande (Merci de rajouter 4% au montant de votre commande
  pour les frais demand&eacute;s par ce site)</p>
<?php
    break;
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: