Page 1 sur 2

Affichage informatif en fonction de la sélection

Posté : 12 mai 2005, 16:35
par cdol
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

Posté : 12 mai 2005, 16:43
par slipndi
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;)

Posté : 12 mai 2005, 17:02
par cdol
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 :)

Posté : 12 mai 2005, 17:05
par slipndi
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]

Posté : 12 mai 2005, 17:09
par cdol
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 :)

Posté : 12 mai 2005, 17:13
par slipndi
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 ;)

Posté : 13 mai 2005, 11:28
par cdol
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

Posté : 13 mai 2005, 11:42
par slipndi
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 ;)

Posté : 13 mai 2005, 11:47
par cdol
Merci, je teste ça ce soir :)

Posté : 13 mai 2005, 17:05
par cdol
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

Posté : 19 mai 2005, 12:55
par cdol
Help please...... :)

Posté : 19 mai 2005, 13:00
par Cyrano
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 ?

Posté : 19 mai 2005, 13:50
par cdol
Merci pour ce tuyau. Je teste tout ça fin de journée quand j'aurai survécu à mes 3546054343 mails de retard :) :) :)

Posté : 19 mai 2005, 23:27
par cdol
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

Posté : 19 mai 2005, 23:33
par Cyrano
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;
}
?>