2017-04-08 2 views
-1

J'ai des produits qui sont imprimés sur un écran en forme de boucle while et les boutons 'add_to_cart' qui vont avec. Je veux pouvoir appuyer sur le bouton "ajouter au panier" et ajouter le produit sélectionné au-dessus à la variable "$ selectedProduct". Mais quand j'appuie dessus, rien ne se passe et la variable reste vide.Bouton Soumettre en boucle While

<?php 

    include('connect.php'); 
    require("session.php"); 


     //create the sql statement 
     $sql_all= 
      "SELECT * FROM product 
       ORDER BY product_ID DESC"; 
     $result_all = mysqli_query($con,$sql_all); 


     //PRINT OUT ALL THE PRODUCT 
     while ($row_all = mysqli_fetch_assoc($result_all)) 
       { 
        echo '<form method="post">'; 
         echo '<u>'.$row_all["name"].'</u>'; 

         echo '<br>'; 

         echo '<button name="add_to_cart" type="submit">Add to Cart</button>'; 

         echo '<hr>'; 
        echo '</form>'; 



       } 



      if(isset($_POST["add_to_cart"])) 
      { 

       //CREATE A VARIABLE THAT HOLDS THE SELECTED PRODUCTED TO BE ADDED TO CART 
        $selectedProduct = $row_all["name"]; 

       echo 'Selected Product = '.$selectedProduct; 

      } 

    mysqli_close($con); 
?>    
+0

Ni votre formulaire a une action, ni vous avez un javascript pour gérer le formulaire de soumission. – Dez

Répondre

0

Bonjour, vous semblez n'avoir rien ajouté pour passer par la méthode post. Trouvez le code ci-dessous, je vous ai montré comment le faire de la bonne façon. Cela ajoutera chaque fois le produit sélectionné à cette variable spécifique.

while ($row_all = mysqli_fetch_assoc($result_all)) 
       { 
        echo '<form method="post">'; 
         echo '<u>'.$row_all["name"].'</u>'; 

         echo '<br>'; 

         echo '<button name="add_to_cart" value='.$row_all['name'].' type="submit">Add to Cart</button>'; 

         echo '<hr>'; 
        echo '</form>'; 



       } 



      if(isset($_POST["add_to_cart"])) 
      { 

       //CREATE A VARIABLE THAT HOLDS THE SELECTED PRODUCTED TO BE ADDED TO CART 
        $selectedProduct = $_POST["add_to_cart"]; 

       echo 'Selected Product = '.$selectedProduct; 

      } 

    mysqli_close($conn); 

Cependant, si tu veux à ajouter ou itérer la quantité de produits à chaque fois pour que les magasins variables de nombreux produits. Vous devrez utiliser une variable de session

+0

J'ai ajouté votre code mais quand je sélectionne un élément qui a plus d'un mot, il sélectionne seulement le premier mot. Des idées? – patreilly

+0

Utilisation mysqli_fetch_array au lieu de tableau associatif >>> while ($ row_all = mysqli_fetch_array (de result_all de $)) –

+0

Même chose, en écho seul le premier mot – patreilly

0
<?php 

    include('connect.php'); 
    require("session.php"); 


     //create the sql statement 
     $sql_all= 
      "SELECT * FROM product 
       ORDER BY product_ID DESC"; 
     $result_all = mysqli_query($con,$sql_all); 
while ($row_all = mysqli_fetch_assoc($result_all)) 
       { 
        echo '<form method="post">'; 
         echo '<u>'.$row_all["name"].'</u>'; 

         echo '<br>'; 

         echo '<button name="add_to_cart" value='.$row_all['name'].' type="submit">Add to Cart</button>'; 

         echo '<hr>'; 
        echo '</form>'; 



       } 



      if(isset($_POST["add_to_cart"])) 
      { 

       //CREATE A VARIABLE THAT HOLDS THE SELECTED PRODUCTED TO BE ADDED TO CART 
        $selectedProduct = $_POST["add_to_cart"]; 

       echo 'Selected Product = '.$selectedProduct; 

      } 

     mysqli_close($conn); 
?>