2015-04-21 42 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篇文章之后。 –