2015-04-21 43 views
0

我正在使用此腳本創建包含文章的訂單列表。如何在td在foreach循環中解析單個td

<form> 
    <table> 
     <?php 
     include ('artikel_lijst.php'); 
     foreach($artikels as $artikel => $art){ 
     ?> 
      <tr>  
      <td> 
      <?php echo $artikel."\n";?> 
      </td> 
      <td> 
      <?php echo '&euro; '.number_format($art, 2)."\n";?> 
      </td> 
      <td> 
      <input type="text" name="txtinput[]" size="3" /> 
      </td> 
      </tr> 
     <?php 
     } 
     ?> 
    </table> 
    <input type="submit" value="Output" /> 
</form> 
<?php 
//post and calculate 
if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    $totaal = 0; 
    foreach($_POST['txtinput'] as $postartikel => $val){ 
     if(!empty($_POST['txtinput'][$postartikel])){ 
      echo array_keys($artikels)[$postartikel].':&nbsp; Aantal: '.$val. "&nbsp;&nbsp;Subtotaal: &euro;: " .number_format($artikels[array_keys($artikels)[$postartikel]] * $val, 2). "<br>\n"; 
     } 
     $totaal += $artikels[array_keys($artikels)[$postartikel]] * $val; 
    } 
    echo 'Totaal: '.number_format($totaal, 2); 
} 

artikel_lijst.php

$artikels = array(
'cola' => 1.2, 
'fanta' => 1.3, 
'mineral water' => 1.5, 
    'hamburger' => 2.5, 
    'cheeseburger' => 2.5, 
    'milkshake' => 2.5, 

); 

正如你可以看到,該錶行和表數據是由在foreach創建。 我的問題:我如何,讓我們後5篇文章說,讓表內的單行2

<tr><td>List 2</td></tr> 
// parse again 5 rows 
<tr><td>List 3</td></tr> 
// now parse 8 rows 
<tr><td>List 4</td></tr> 

所以我想手動放置一些地方在表中的額外的行這是一個標題下面的這

+0

你必須指定,當你想添加一個附加行的一些標準。標準必須在數據結構中。除非「此腳本用戶的用戶」擁有遠程動力的權力與PHP通信。但是,當前版本的PHP中尚未提供心靈感應擴展。 – Misunderstood

+0

所以我認爲這是不可能的。我必須手動創建表單並讓他脫離foreach? –

+0

您需要指定標準並在數據中包含該標準。 – Misunderstood

回答

0
在循環

文章新的列表,只需使用「模數」:

$i = 0; 
foreach($_POST['txtinput'] as $postartikel => $val) { 
    if($i % 5 == 0) { 
    // Something that will be executed only 1 in 5 times 
    } 

    ... 
    $i++; 
} 
+0

我可以做到這一點,但有5行後出現額外的行。問題是,這個腳本的用戶有時會在5篇文章後有時多出一行,有時候在8或9篇文章之後。 –