2016-08-05 25 views
1

Warum wird nur die unterste Tabelle im Formular zur nächsten Seite verarbeitet? Wenn sie Mengen aus mehreren Stilen (mehrere Tabellen) eingeben, möchte ich die Informationen in separaten Tabellen (Zeilen) auf der nächsten Seite gerendert werden. Ein Beispiel von dem, was ich versuche zu tun, ist hier: http://taketwodesigns.com/monkeypod/order/BACKUPS/items/ladies/index.phpMehrere Tabellen in einer Form bearbeiten und zur nächsten Seite posten - ohne MySQL

Wenn ich Qty's in den Top 2 Tabellen eingeben, werden keine Daten auf der nächsten Seite gerendert. Wenn ich Zahlen in der unteren Tabelle eingeben, werden die Informationen in Ordnung wiedergegeben! Muss ich jedem Submit-Button Namen geben? Vielleicht füge ich ein if (isset()?

Ich versuche, ein Bestellformular für Kleidung zu erstellen, ohne den vollen Warenkorb zu benötigen! Keine Zahlung erforderlich. (Möchte schließlich in der Lage sein, ein PDF von gerenderte Seite) Dank!

<?php 
date_default_timezone_set('Pacific/Honolulu'); 
$date = date("l, F jS Y g:i:s A"); 

$itemName = $_POST['submitIt']; 
$itemStyle = $_POST['itemStyle']; 
$mistake = '<p class="mistakes">If you have entered the wrong quantities,  simply go<a href="javascript:history.back();"> BACK</a> and re-enter them. </p>'; 

$xs = $_POST['xs']; 
$sm = $_POST['sm']; 
$md = $_POST['md']; 
$lg = $_POST['lg']; 
$xl = $_POST['xl']; 
$xxl = $_POST['xxl']; 

if ($_POST['xs'] || 
    $_POST['sm'] || 
    $_POST['md'] || 
    $_POST['lg'] || 
    $_POST['xl'] || 
    $_POST['xxl'] && 
    $_POST['submitIt'] &&   
    $_POST['itemStyle']) { 

for ($i = 0; $i < count($_POST['submitIt']); $i++) { 

    $xs = ltrim($_POST['xs'][$i], '0'); 
    $sm = ltrim($_POST['sm'][$i], '0'); 
    $md = ltrim($_POST['md'][$i], '0'); 
    $lg = ltrim($_POST['lg'][$i], '0'); 
    $xl = ltrim($_POST['xl'][$i], '0'); 
    $xxl = ltrim($_POST['xxl'][$i], '0'); 

    include '../../BACKUPS/templates/process_table_template.php';      
    } 
}else { 
    echo '<h2>Oppsiedasies! It looks like you didn\'t order anything! <br>Back to <a href="..">shop home</a></h2>'; 
} 
?> 

Designs und Größen von Kleidungsstücken sind in mehreren Tabellen in einem einzigen Formelement. Wie unten. (einfach davon ausgehen, es gibt mehrere Arten, einige ohne XS, XL oder XXL Größen)

<form action="/monkeypod/order/BACKUPS/processors/process_xs-xxl.php" class="margins" name="ladies" method="post"> 
<span class="item_kind">↓ Ladies Items ↓</span> 

<!---------- 1st STYLE BELOW -----------> 
<div class="itemz"> 

<div class="item_image_container"> 
<span class="item_name">Item ~ MLTA107-101TEV</span> 
<a href="/monkeypod/order/BACKUPS/images/styles/large/mlta107_101tev_big.jpg" target="_blank"> 
<img class="item_image" src="/monkeypod/order/BACKUPS/images/styles/thumbs/mlta107_101tev_thumb.png" /></a> 
<span class="click_full_image">Click image for full size</span> 
</div><!-- ITEM_IMAGE_CONTAINER div CLOSE --> 

<table id="styles" border="1" cellspacing="1"> 
<tr class="gridaddrows"> 
<td colspan=8 class="radius"> 
<div class="formtext">Enter quantities and click the revolving can to submit</div> 
</td> 
</tr> 

<tr class="gridrows"> 
<td class="gridtitle">Size ►</td> 
<td class="gridtitle">XS</td> 
<td class="gridtitle">SM</td> 
<td class="gridtitle">MD</td> 
<td class="gridtitle">LG</td> 
<td class="gridtitle"></td> 
<td class="gridtitle"></td> 
</tr> 

<td class="add_to_cart_btn"> 
<input type="image" src="/monkeypod/order/BACKUPS/images/clicktoadd83pxfast.gif" alt="Add to Cart"></td> 
<input type="hidden" name="itemName" value="MLTA107-101TEV"> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="xs" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="sm" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="md" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="lg" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><!-- span class="price">$11.25</span><br --> 
<input type="number" name="xl" placeholder="Qty" min="0" max="288" style="visibility: hidden;" autocomplete="off"></td> 

<td><!-- span class="price">$11.25</span><br --> 
<input type="number" name="xxl" placeholder="Qty" min="0" max="288" style="visibility: hidden;" autocomplete="off"></td> 

</table> 
</div><!-- ITEMZ div CLOSE --> 

<!------ 2nd STYLE BELOW ----------------> 

Antwort

0

Ich erwarte, dass der 2. Stil genau die s aussieht ame als erstes. Wenn Sie mehrere Elemente mit exakt derselben Struktur bearbeiten möchten, sollten Sie Arrays verwenden. Sie können dies tun, indem Klammern an Ihre Eingaben Namen hinzufügen:

<form action="/monkeypod/order/BACKUPS/processors/process_xs-xxl.php" class="margins" name="ladies" method="post"> 
<span class="item_kind">↓ Ladies Items ↓</span> 

<!---------- 1st STYLE BELOW -----------> 
<div class="itemz"> 

<div class="item_image_container"> 
<span class="item_name">Item ~ MLTA107-101TEV</span> 
<a href="/monkeypod/order/BACKUPS/images/styles/large/mlta107_101tev_big.jpg" target="_blank"> 
<img class="item_image" src="/monkeypod/order/BACKUPS/images/styles/thumbs/mlta107_101tev_thumb.png" /></a> 
<span class="click_full_image">Click image for full size</span> 
</div><!-- ITEM_IMAGE_CONTAINER div CLOSE --> 

<table id="styles" border="1" cellspacing="1"> 
<tr class="gridaddrows"> 
<td colspan=8 class="radius"> 
<div class="formtext">Enter quantities and click the revolving can to submit</div> 
</td> 
</tr> 

<tr class="gridrows"> 
<td class="gridtitle">Size ►</td> 
<td class="gridtitle">XS</td> 
<td class="gridtitle">SM</td> 
<td class="gridtitle">MD</td> 
<td class="gridtitle">LG</td> 
<td class="gridtitle"></td> 
<td class="gridtitle"></td> 
</tr> 

<td class="add_to_cart_btn"> 
<input type="image" src="/monkeypod/order/BACKUPS/images/clicktoadd83pxfast.gif" alt="Add to Cart"></td> 
<input type="hidden" name="itemName[]" value="MLTA107-101TEV"> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="xs[]" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="sm[]" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="md[]" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><span class="price">$11.25</span><br> 
<input type="number" name="lg[]" placeholder="Qty" min="0" max="288" autocomplete="off"></td> 

<td><!-- span class="price">$11.25</span><br --> 
<input type="number" name="xl[]" placeholder="Qty" min="0" max="288" style="visibility: hidden;" autocomplete="off"></td> 

<td><!-- span class="price">$11.25</span><br --> 
<input type="number" name="xxl[]" placeholder="Qty" min="0" max="288" style="visibility: hidden;" autocomplete="off"></td> 

</table> 
</div><!-- ITEMZ div CLOSE --> 

<!------ 2nd STYLE BELOW ----------------> 

Ihre $ _POST Variablen wird so aussehen, wenn Sie 2 Arten haben (Dummy-Beispiel):

<?php 
    var_dump($_POST['xs']); 
    /* 
     array(2) => (
      [0](string) => '1', 
      [1](string) => '1' 
     ) 
    */ 
?> 

In PHP-Datei, die Form verarbeitet Eingabe, Schleife durch $ _POST-Array. , das wie so etwas wie dies aussehen könnte (ich nur relevante Teile des Codes geändert können Arrays verarbeiten, es zeigt nur, wie es nicht getestet getan werden könnte):

<?php 
    date_default_timezone_set('Pacific/Honolulu'); 
    {...} 
    if (((is_array($_POST['xs']) && !empty($_POST['xs'])) || 
     (is_array($_POST['sm']) && !empty($_POST['sm'])) || 
     (is_array($_POST['md']) && !empty($_POST['md'])) || 
     (is_array($_POST['lg']) && !empty($_POST['lg'])) || 
     (is_array($_POST['xl']) && !empty($_POST['xl'])) || 
     (is_array($_POST['xxl']) && !empty($_POST['xxl']))) && 
     (is_array($_POST['itemName']) && !empty($_POST['itemName'])) 
    ) { 
     for ($i = 0; $i < count($_POST['itemName']); $i++) { 
      $xs = ltrim($_POST['xs'][$i], '0'); 
      {...} 
     } 
    } else { 
     echo '<h2>Oppsiedasies! It looks like you didn\'t order anything!    <br>Back to <a href="..">shop home</a></h2>'; 
    } 
?> 
+0

So verwende ich den Code, Sie haben im "auskommentierten" Bereich anstelle des Codes in meiner "if" -Anweisung? – Bigfootbud

+0

Nein, der Kommentarbereich zeigt die Ausgabe von 'var_dump ($ _ POST ['xs'])' '. – simialbi

+0

Danke, aber ich bin noch nicht so weit mit Arrays gekommen ... etwas detailliertere Hilfe? Habe ich einen Stapel von "var_dump ($ _ POST ['xs'])", je nachdem wie viele Größen ich habe. Dann gibt die Zahl "2" im "Array (2)" an, wie viele Stile ich auf der Seite habe? – Bigfootbud