Problème script PAYPAL: Comment avoir des cases à cocher ?

Eléphanteau du PHP | 27 Messages

11 août 2014, 09:46

Bonjour à tous,

Je suis en train de faire une page de commande pour un ami qui vend des plateaux de fruits de mer. (voir ici > http://richardsourdeau.com/danielpoissel/commande)

Voici mon problème:

Il veut que les gens composent eux même leur plateau de fruits de mer...

Dans Paypal, on ne peut que faire une liste déroulante, c'est bien mais à chaque fois pour sélectionner autre chose il faut revenir en arrière ce qui n'est pas du tout pratique.

Le mieux serait une liste de cases à cocher pour pouvoir choisir plusieurs produits et ensuite cliquer sur ajouter au panier.

Qu'en pensez-vous et est-il possible de faire ce que je viens d'expliquer ?

Existe t-il d'autres solutions ?


Merci pour vos réponses...

Amicalement,

Rick44

Eléphanteau du PHP | 27 Messages

12 août 2014, 13:19

Bonjour,

Je vous met le code pour vous donner un aperçu:
<form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="RJCAC948F45VA">
<table>
<tr><td><div align="center">
  <input type="hidden" name="on0" value="Personnalisez votre plateau">
  <span class="Style1"><strong>Composez vous m&ecirc;me  votre plateau de fruits de mer</strong></span></div></td>
</tr><tr><td><select name="os0">
	<option value="1 crabe">1 crabe €5,00 EUR</option>
	<option value="1 araignée">1 araignée €7,00 EUR</option>
	<option value="6 huîtres">6 huîtres €6,00 EUR</option>
	<option value="12 huîtres">12 huîtres €12,00 EUR</option>
	<option value="120 g de crevettes grises">120 g de crevettes grises €3,00 EUR</option>
	<option value="150 g de bulots">150 g de bulots €4,00 EUR</option>
	<option value="100 g de crevettes roses">100 g de crevettes roses €3,00 EUR</option>
	<option value="15 amandes">15 amandes €8,00 EUR</option>
	<option value="50 g de bigorneaux">50 g de bigorneaux €3,50 EUR</option>
	<option value="12 palourdes">12 palourdes €9,50 EUR</option>
</select> </td></tr>
</table>
<div align="center"></div>
<div align="center">
  <input type="hidden" name="currency_code" value="EUR">
  <input type="image" src="https://www.paypalobjects.com/fr_FR/FR/i/btn/btn_cart_LG.gif" border="0" name="submit" alt="PayPal - la solution de paiement en ligne la plus simple et la plus sécurisée !">
  <img alt="" border="0" src="https://www.paypalobjects.com/fr_FR/i/scr/pixel.gif" width="1" height="1">
</div>
</form>
Merci pour votre aide...

Richard

Eléphanteau du PHP | 27 Messages

20 août 2014, 07:29

Bonjour,

Apparemment, mon problème n'est pas facile à résoudre.

Merci quand même.

Amicalement,

Rick44

Mammouth du PHP | 2278 Messages

20 août 2014, 08:33

Il faudraitremplacer le select unique par une série de cases à cocher ou de select:
<<h1>Marémotrice Sa</h1>
<h2>Personnalisez votre plateau de fruits de mer</h2>
<form method = 'post' action = 'calculer.php'>
<fieldset>
<legend>Crabe</legend>
<input type = 'radio' name = 'crabe[]' value= '1' />1: 5€<input type = 'radio' name = 'crabe[]' value= '0' />0
</fieldset>
<fieldset>
<legend>Huitres</legend>

<select name = 'huitres'>
<option value = '1'>6 huitres de marennes 6€</option>
<option value = '2'>12 huitres de marennes 12€</option>
</select>
</fieldset>
<button type = 'submit'>Passer commande</button>
</form>
faire le calcul dans une age php calculer.php (qui devrait pouvoir utiliser paypal)

Au passage :
mélanger table et div :
<table>
<tr><td><div align="center">
me laisse perplexe

les input se terminent ainsi /> le /précédé d'un espace.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 27 Messages

20 août 2014, 09:30

Bonjour Sirakawa,

En fait de que je voudrais c'est ça ► http://richardsourdeau.com/danielpoissel/calculer.php pour pouvoir cocher plusieurs cases et couplé au formulaire paypal.

Merci pour ta patience... :)

Amicalement,

Rick44

Mammouth du PHP | 2278 Messages

20 août 2014, 10:11

C'est prédisément ce que fait le bout de html que je t'ai envoyé.
Voici deux autres façons de procéder:
<h1>Marémotrice Sa</h1>
<form method = 'post' action = 'calculer.php'>
<fieldset>
<legend>Personnalisez votre plateau de fruits de mer</legend>
<input type = 'checkbox' name = 'crabe' value= '1' />1 crabe: 5€
<br />
<select name = 'huitres'>
<option value = '6'>6 huitres de marennes 6€</option>
<option value = '12'>12 huitres de marennes 11€</option>
</select>
</fieldset>
<button type = 'submit'>Passer commande</button>
</form>

<!-- OU -->

<!-- Quand les checkbox ont une seule valeur possible, name ='un_mot' et on les récupère comme une variable: $un_mot = $_POST['un_mot']; 
mais il faut tester avant si la checkbox a été cochée. (C'est pourquoi je préfère la solution avec radio.
Quand ils ont plusieurs valeurs possibles on les nomme ainsi name = 'un_choix[]'; et on les récupère comme un tableau; C'estbpourquoi je préfère la solution avec _un select  qui est plus facile à étendre si les choix se multiplient-->
<h1>Marémotrice Sa</h1>
<form method = 'post' action = 'calculer.php'>
<fieldset>
<legend>Personnalisez votre plateau de fruits de mer</legend>
<input type = 'checkbox' name = 'crabe' value= '1' />1 crabe: 5€
<br />
<input type = 'checkbox' name = 'huitres[]' value = '6'>6 huitres de marennes 6€</option>
<input type = 'checkbox' name = 'huitres[]' value = '12'>6 huitres de marennes 11€</option>
</select>
</fieldset>
<button type = 'submit'>Passer commande</button>
</form>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Mammouth du PHP | 571 Messages

20 août 2014, 17:13

c'est tout de même contraignant de pouvoir mettre des cases à cocher dans un formulaire paypal.néanmoins pour faire simple tu peux découper ta fonctionnalité en 2 parties.
-Une 1ère partie sera une page affichant les différents menus avec la possibilité de choisir son menu à l'aide des checkbox.A ce niveau les données(les menus) ne doivent pas être mises en dur pour peupler le formulaire, comme tu le fais, mais doivent provenir soit d'un tableau php soit d'une BD pour pouvoir vérifier qu'après soumission du formulaire que les prix des menus n'ont pas été altérés par un utilisateur mal intentionné.Après soumission du client, si les choix renvoyés par le client sont bien ceux du menu provenant d'un tableau(ou d'une bd) alors tu peux mettre en session ces menus et et aussi le total de la commande du client.
Dès que les données ont été mises en session tu peux rediriger le client vers la page du formulaire payapal.

- une 2ème partie sera page constituée du formulaire paypal. Etant donné que t'as déjà en session les choix de ton client ainsi que le total de sa commande(information la plus pertinente pour paypal), tu peux insérer dans le formulaire paypal le total de la commande(champ amount) éventuellement les menus choisis par le client.si tu souhaites transmettre à paypal les items du menu, tu peux sérialiser les données(passage d'un type composite en chaîne de caractères ex:serialize($_SESSION['dat']) du menu qui se trouvent déjà en session.

Voilà une ébauche du code:
<?php
session_start() ;
//tableau des menus
//indice1 du tableau=>id du menu et indice2=>prix du menu
$tblMenu[][5]='crabe';
$tblMenu[][6]='6 huitres';
$tblMenu[][11]='12 huitres ';
$tblMenu[][15]='1 homard ';
?>


<form method="post" >
  <?php foreach ($tblMenu as $key => $value) : ?>
           <?php foreach ($value as $k => $val)  ?>
<input type="checkbox" name="choix[<?php echo $key ?>][<?php echo $k ?>]" value="<?php echo $val ?>">  <?php echo $val,'-',$k,'euro' ?><br>
<?php endforeach ?>
<input type="submit" name="valider" value="valider votre choix">
</form>

<?php
$tot=0;
$choixEffectues=array(); //array contenant le ou les menus choisi par le client
if(!empty($_POST)){ //soumission du form
 // var_dump($_POST['choix']);
  $_SESSION['data']= array();
  foreach ( $_POST['choix'] as $key => $value){
    foreach ($value as $prix => $v){
      if( !isset($tblMenu[$key][$prix]) ) //les menus envoyés par le form sont bien ceux qui se trouvent dans tblMenu
         die("menu non conforme");//menu alterné. ici il est importé dans concevoir un système de log de ton appli
        $choixEffectues[$key]=$tblMenu[$key][$prix]; //sauvergarde du choix de l'utilisateur
      $tot+=$prix;
      $_SESSION['total'] = $tot; //le total de la commande du client
   
    }
  }

 $_SESSION['data']= $choixEffectues;//mise en session des menus du client
 
  echo "total=$tot";
  var_dump($_SESSION['data']);
 //redirection vers la page du form de paypal
  //header("Location : page_du_form_paypal.php");
  exit(0);
}

?>
Pour pouvoir donner une flexibilité à ton application i.e permettre à l'admin de pouvoir modifier(faire évoluer les menus) les menus il est préférable que tu puisses créer une table menu qui stockera les différents menus.

Eléphant du PHP | 63 Messages

25 juin 2015, 14:45

Bonsoir
j'ai une question concernant paypal .
j'ai un projet de site de travailler avec des vendeurs qui depose des articles montre gadget etc sur mon site afin de les proposer a mes clients

je voudrais que lorsque le client paie le marchant ma com me soit directement payer en meme temps sur mon compte paypal ?
est ce que c'est realisable techniquement en php et via le process jusqu 'a paypal sans que le client ai a faire 2 paiements ?
c'est peut etre un bon moyen pour que chaque vendeur n'oublis pas ma com .

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 juin 2015, 17:40

Modération :
Merci de respecter la règle 1 problématique = 1 sujet.
Si tu as une nouvelle question ouvre un nouveau sujet, cela te permettra d'avoir plus de réponses et d'améliorer la lisibilité du forum.
Quand tout le reste a échoué, lisez le mode d'emploi...