2016-12-13 2 views
0

Ich habe ein Warenkorb Array und wenn der Benutzer wählen mehr als 1 Artikel zu kaufen, um ihm die Cofirm Form geben, wo er ihre Daten geben wird, um den Befehl zu cofirm, aber die Problem ist, wenn ich mehr als 1 Produkt habe, zeigt das Skript mir mehr als 1 Knopf mit sumbit den Befehl, und ich will nur 1 Knopf bilden, um für den Befehl zu addieren und das ganzes Datum von beiden Einzelteilen zu geben, um in ein mysql einzufügen dbWie Formulardaten für mehr als ein Element Array senden

cart.php

// Start the For Each loop 
     $i = 0; 
     foreach ($_SESSION["cart_array"] as $each_item) { 
      $item_id = $each_item['item_id']; 

      // start select query stmt 
      $stmt = $con->prepare('SELECT id, product_name, price, size, details FROM products WHERE id = ? LIMIT 1'); 
      $stmt->bind_param('i', $item_id); 
      $stmt->execute(); 
      $stmt->bind_result($idSelect, $product_name, $price, $size, $details);//variabla pe care o vrei inlocuita prin bind_Result in loc de get_Result 
      while ($stmt->fetch()) { 
       $idSelect; 
       $product_name; // faci acelasi lucru fara $row 
       $price;  
       $size; 
       $details;  
      } 
      $stmt->free_result(); 
      // stoop select stmt  
      $pricetotal = $price * $each_item['quantity']; 
      $cartTotal = $pricetotal + $cartTotal; 

      // Create the product array variable 
      $product_id_array .= "$item_id-".$each_item['quantity'].","; 
      // sumbit the command FORM 
      //$cartOutput .= '<td>' . $each_item['quantity'] . '</td>'; 
      $cartOutput .= '<td><center>' . $pricetotal . ' RON</center></td>'; 
      $cartOutput .= '<td><form action="cart.php" method="post"><input name="deleteBtn' . $item_id . '" type="submit" value="X" /><input name="index_to_remove" type="hidden" value="' . $i . '" /></form></td>'; 
      $cartOutput .= '</tr>'; 

      $i++; 
      $totalProduse = $item_id -1 + $each_item['quantity']; 
      //trimite form to COFIRMA COMANDA 
      $cofirmaComanda .='<form action="cofirma_comanda.php" method="post"> 
      <input name="prettotal" type="hidden" value="'. $pricetotal .'"> 
      <input name="produseID" type="hidden" value="'. $item_id .'"> 
      <input name="produseNume" type="hidden" value="'. $product_name .'"> 
      <input name="size" type="hidden" value="'. $my_ArraySize .'"> 
      <input name="cantitate" type="hidden" value="' . $each_item['quantity'] .'"> 
      <input name="produse" type="hidden" value="'. $item_id .'"> 
       <input type="submit" name="CofirmaComanda" value="cofirma_comanda"></form>'; 

     } 

die Form ist $cofirmaComanda

und der cofirm Befehl Seite

<?php 
$pretTotal = $_POST["prettotal"]; 
$PRODUSE = $_POST["produseID"]; 
$produseNume = $_POST["produseNume"]; 
$size = $_POST["size"]; 
$cantitate = $_POST["cantitate"]; 


    if(isset($_POST["sumbitDateClienti"])){ 
    $nume = $_POST["nume_client"]; 


    $pretTotalt = $_POST["prettotal"]; 

    $PRODUSE = $_POST["produseID"]; 
    $produseNume = $_POST["produseNume"]; 
    $size = $_POST["size"]; 
    $cantitate = $_POST["cantitate"]; 
    $comanda = 'IDprodus: '.$PRODUSE.'/produseNume: '.$produseNume.'/cantitate: '.$cantitate.'/dimensiune: '.$size.' '; 

    } 

?> 
+1

Verweisen Sie auf den Code, der das Problem verursacht, und nicht auf den gesamten Code, von dem erwartet wird, dass andere für Sie debuggen. Sagen Sie uns, welchen Teil und welches Problem Sie bekommen. – KDOT

+0

Sorry war mein Fehler Ich entfernte den Code und ich ließ den Code mit dem Problem, sorry, ich bin Neuling – Stefan

Antwort

0

Was Sie wollen, ist Ihre Form zu definieren und Submit-Button außerhalb Ihrer foreach Schleife, und verwenden Sie Arrays für Ihre verborgenen Variablen (einfach [] nach dem Namen hinzufügen, in dem HTML-Formular) :

$cofirmaComanda = '<form action="cofirma_comanda.php" method="post">'; 

foreach ($_SESSION["cart_array"] as $each_item) { 
    // ... 
    $cofirmaComanda .=' 
     <input name="prettotal[]" type="hidden" value="'. $pricetotal .'"> 
     <input name="produseID[]" type="hidden" value="'. $item_id .'"> 
     <input name="produseNume[]" type="hidden" value="'. $product_name .'"> 
     <input name="size[]" type="hidden" value="'. $my_ArraySize .'"> 
     <input name="cantitate[]" type="hidden" value="' . $each_item['quantity'] .'"> 
     <input name="produse[]" type="hidden" value="'. $item_id .'">'; 
} 

$cofirmaComanda .='<input type="submit" name="CofirmaComanda" value="cofirma_comanda"></form> 

Dann in Ihrer cofirma_comanda.php, Schleife Ihre POST-ed Werte zu erhalten, jedes Element einzeln zu verarbeiten:

for ($i=0; $i<count($_POST["prettotal"]); $i++) { 
    $pretTotal = $_POST["prettotal"][$i]; 
    $PRODUSE = $_POST["produseID"][$i]; 
    $produseNume = $_POST["produseNume"][$i]; 
    $size = $_POST["size"][$i]; 
    $cantitate = $_POST["cantitate"][$i]; 
    // ... 
} 
+0

auf dem cofirm_comanda ist mir das 'Hinweis: Verwendung von undefinierten Konstante i - angenommen 'ich' in E: \ wamp \ www \ MyOnlineStore \ cofirma_comanda.php in Zeile 9' und 'Hinweis: Undefinierter Offset: 2 in E: \ wamp \ www \ MyOnlineStore \ cofirma_comanda.php in Zeile 10' – Stefan

+0

Ein Schreibfehler wurde behoben; sollte sein "$ i

+0

Ich wusste aber, gibt mir die 'produceNume' und' prettotal' für das letzte Element-Array ... – Stefan

Verwandte Themen