Form produit avec checkbox prix ajusté

MI7
Eléphanteau du PHP | 16 Messages

19 janv. 2022, 21:29

Bonjours j'aimerais avoir votre aide pour mon problème je vous explique :oops: .

L'utilisateur peut acheter un produit d'une valeur de 2000$ et le produit en question a 3 options optionnelle
Il pourrait ne rien choisir comme option ou bien en sélection 2 sur 3 . l'utilisateur est libre dans sont choix d'options (0/3, 1/3, 2/3, 3/3)

le $array[1]['price'] a une valeur de 2000$ prix initial du produit qui vient de ma BDD

dans mes checkbox chaque value contient une variable contenant un prix

l'objectif c'est de vérifier ce qui est sélectionner et ajouter cela au prix de départ de 2000$ sinon si rien est sélectionner cela reste au prix initial de 2000$
<form action="paypal/request.php" method="post" class="col-sm-12 col-md-4 col-lg-4 col-xl-4 tm-article">
		<input type="hidden" name="item_number" value="<?php echo $array[1]['id']; ?>" >
		<input type="hidden" name="item_name" value="<?php echo $array[1]['name']; ?>" >
		<input type="hidden" name="amount" value="<?php echo  $array[1]['price'];  ?>" >
		<input type="hidden" name="currency_code" value="CAD" >
                            
		<i class="fas fa-burn tm-fa-6x  tm-color-primary tm-margin-b-20"></i>
                            <h3 class="tm-color-primary tm-article-title-1">FIRE SAFETY PLANS</h3>
                            <p>Assisting customers in addressing the various code requirements to avoid these problems is our job</p>
		<p class="text-uppercase tm-color-primary tm-font-semibold">start at the price of 2000$</p>

		<input type="checkbox"  name="option1" value=<?php $deuxCent ?>>
		<label class="text-uppercase tm-color-primary tm-font-semibold" for="option1"> upgrade 200$</label><br>
		<input type="checkbox" name="option2" value=<?php $troisCent ?>>
		<label class="text-uppercase tm-color-primary tm-font-semibold" for="option2"> upgrade 300$</label><br>
		<input type="checkbox"  name="option3" value=<?php $quatreCent ?>>
		<label class="text-uppercase tm-color-primary tm-font-semibold" for="option3"> upgrade 400$</label><br><br> 
		
<?php 
		if($_SESSION['first_name'] == null): ?> <a class="btn btn-danger" href="../user/register.php">Register</a>
			<?php else: ?> <input type="submit" name="submit" value="Buy" class="btn btn-success ">
			<?php endif; 
?>                           
    </form>
Image

j'imagine j'aurai pas le choix de passer par JS ? ou cela pourrait se faire très bien a l'aide d'une fonction PHP ? présentement le projet est a 90% PHP

Mammouth du PHP | 2703 Messages

19 janv. 2022, 21:42

du js serait utile s'il y avait des contraintes sur le choix des options mais comme tous les cas de figure sont acceptés, pas besoin de js.
à noter que mettre un prix dans un champ hidden permet au visiteur de changer son prix de vente, ce qui est sympa pour le client.

MI7
Eléphanteau du PHP | 16 Messages

20 janv. 2022, 02:55

j'ai trouvé une solution que j'ai testé avec un formulaire sans redirection form
 action="" method="post" 
quand je submit le formulaire je vois tres bien que le prix a été ajuster dans ma valeur input.


voici ma technique pour vérifier les valeur checkbox

fichier fonction.php
$deuxCent = 200;
$troisCent = 300;
$quatreCent = 400;
	
	if(isset($_POST['submit'])) {
    
		if(!isset($_POST['option1'])) {  
			$deuxCent = 0;
		} else {
			$deuxCent = 200;
		}
	
		if(!isset($_POST['option2'])) {  
			$troisCent = 0;
		} else {
			$troisCent = 300;
		}
	
		if(!isset($_POST['option3'])) {  
			$quatreCent = 0;
		} else {
			$quatreCent = 400;
		}
		$array[1]['price'] = 2000;
		$array[1]['price'] = $array[1]['price'] + $deuxCent + $troisCent + $quatreCent;
	}
donc en principe quand je clique sur submit le code présenté plus haut va s'exécuter et ma variable $array[1]['price'] aura belle et bien le bon prix dans mon form.

mais le problème quand j'arrive sur ma page Paypal j'ai toujours le même prix de 2000$ alors qu'il devrait être ajuster....
(j'ai bien tester avec un form vierge comme dit plus haut et le prix s'ajustait très bien dans mon form input value.) #-o

l'important c'Est juste d'updater le prix la var $array[1]['price']

fichier fonction.php
<form action="paypal/request.php" method="post" class="col-sm-12 col-md-4 col-lg-4 col-xl-4 tm-article">
    <input type="hidden" name="item_number" value="<?php echo $array[1]['id']; ?>" >
    <input type="hidden" name="item_name" value="<?php echo $array[1]['name']; ?>" >
    <input type="hidden" name="amount" value="<?php echo  $array[1]['price'];  ?>" >
    <input type="hidden" name="currency_code" value="CAD" >
                            
    <i class="fas fa-burn tm-fa-6x  tm-color-primary tm-margin-b-20"></i>
    <h3 class="tm-color-primary tm-article-title-1">FIRE SAFETY PLANS</h3>
    <p>Assisting customers in addressing the various code requirements to avoid these problems is our job</p>
    <p class="text-uppercase tm-color-primary tm-font-semibold">start at the price of 2000$</p>

    <input type="checkbox"  name="option1" value=<?php $deuxCent ?>>
    <label class="text-uppercase tm-color-primary tm-font-semibold" for="option1"> upgrade 200$</label><br>
    <input type="checkbox" name="option2" value=<?php $troisCent ?>>
    <label class="text-uppercase tm-color-primary tm-font-semibold" for="option2"> upgrade 300$</label><br>
    <input type="checkbox"  name="option3" value=<?php $quatreCent ?>>
    <label class="text-uppercase tm-color-primary tm-font-semibold" for="option3"> upgrade 400$</label><br><br> 
    
<?php 
    if($_SESSION['first_name'] == null): ?> <a class="btn btn-danger" href="../user/register.php">Register</a>
      <?php else: ?> <input type="submit" name="submit" value="Buy" class="btn btn-success ">
      <?php endif; 
?>                           
    </form>
bon maintenant quel option qui me reste a envisagé ? :idea: