如何使用php在表中显示多个输入数组值

时间:2014-10-16 08:45:25

标签: php html mysql

我在以表格格式显示数据时遇到问题。我有像这样的多个输入元素

<form id="purchaseform" class="cv-form" method="post" action="requestmail.php" name="purchaseform" >
        <input name="item_name[]" type="text" value="" id="item_name" class="input_text" />
    <input name="item_brand[]" type="text" value="" id="item_brand" class="input_text"/>
    <input name="model_number[]" type="text" value="" id="model_number" class="input_text"/>
    <input  name="item_website_catalogue[]" type="text" id="item_website_catalogue" value="" class="input_text"/>
<input type="submit">
</form>

当我提交此表单时,帖子数据就像这样

[item_name] => Array ( 
    [0] => item1 
    [1] => item2 
) 
[item_brand] => Array ( 
    [0] => brand1 
    [1] => brand2 
) 
[model_number] => Array ( 
    [0] => model1 
    [1] => model2 
) 
[item_website_catalogue] => Array ( 
    [0] => source1 
    [1] => source2 
) 

这里我没有插入数据库。这些将转到电子邮件。我需要像这样的表格格式显示这些数据

商品ID 商品名称 Itembrand 商品模型

1 ----------- testitem ------------ testbrand ------- testmodel

2 ----------- testitem2 ------------ testbrand2 ------- testmodel2

请帮帮我。提前谢谢

3 个答案:

答案 0 :(得分:0)

试试这个......

<?php
for($i=0;$i<count($array['item_name']);$i++) {
    $rows[$i]['item_name'] = $array['item_name'][$i];
    $rows[$i]['item_brand'] = $array['item_brand'][$i];
    $rows[$i]['model_number'] = $array['model_number'][$i];
}
?>
<table>
    <tr>
        <th>Item Id</th>
        <th>Itemname</th>
        <th>Itembrand</th>
        <th>Itemmodel</th>
    </tr>
    <?php 
    $i=1;
    foreach($rows as $row) { 
        echo '<tr>';
        echo '<td>'.$i.'</td>';
        echo '<td>'.$row['item_name'].'</td>';
        echo '<td>'.$row['item_brand'].'</td>';
        echo '<td>'.$row['model_number'].'</td>';
        echo '</tr>';
        $i++;
    } 
    ?>
</table>

答案 1 :(得分:0)

这很简单,只需尝试for loop: 这是一个创建html的示例,然后您可以在电子邮件中发送$output

<?php
$item_nameArr = $_REQUEST['item_name']  =  array ( 0 => 'item1', 1 => 'item2' );
$item_brandArr = $_REQUEST['item_brand'] = array ( 0 => 'brand1', 1 => 'brand2' ) ;
$model_numberArr = $_REQUEST['model_number'] = array ( 0 => 'model1', 1 => 'model2' ) ;
$item_website_catalogueArr = $_REQUEST['item_website_catalogue'] = array ( 0 => 'source1', 1 => 'source2' ) ;

$count = count($item_nameArr);
$output = '<table>';
$output .= '<tr>';
    $output .= '<td>Count</td>';
    $output .= '<td>Item name</td>';
    $output .= '<td>Item brand</td>';
    $output .= '<td>Item model</td>';
    $output .= '<td>Item catalogue</td>';
$output .= '</tr>';

for($i = 0; $i < $count; $i++){
    $output .= '<tr>';
        $output .= '<td>'.($i+1).'</td>';
        $output .= '<td>'.$item_nameArr[$i].'</td>';
        $output .= '<td>'.$item_brandArr[$i].'</td>';
        $output .= '<td>'.$model_numberArr[$i].'</td>';
        $output .= '<td>'.$item_website_catalogueArr[$i].'</td>';
    $output .= '</tr>';
}
$output .= '</table>';
echo $output;
?> 

答案 2 :(得分:0)

我建议使用<table> HTML元素。 但是,如果您不想或不能使用它,您可以使用str_pad功能。

假设你有来自帖子的数组

$post_data = [item_name] => Array ( 
    [0] => item1 
    [1] => item2 
) 
[item_brand] => Array ( 
    [0] => brand1 
    [1] => brand2 
) 
[model_number] => Array ( 
    [0] => model1 
    [1] => model2 
) 
[item_website_catalogue] => Array ( 
    [0] => source1 
    [1] => source2 
)
  1. 找到数组中最长的字符串:

    $len = 0;
    foreach ($post_data as $v) {
        foreach($v as $value) {
            $len = max($len, strlen($value));
        }
    }

    1. 为电子邮件内容准备行。
    2. 
      
           $rows = array();
              foreach ($post_data as $v) {
                  $row= array();
                  foreach($v as $value) {
                      $row[] = '-----------'.str_pad($value, $len+10, '-', STR_PAD_RIGHT);
                  }
                  $rows[] = implode('', $row);
              }
              //$email_text = implode("\r\n", $rows);