我在以表格格式显示数据时遇到问题。我有像这样的多个输入元素
<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
)
这里我没有插入数据库。这些将转到电子邮件。我需要像这样的表格格式显示这些数据
1 ----------- testitem ------------ testbrand ------- testmodel
2 ----------- testitem2 ------------ testbrand2 ------- testmodel2
请帮帮我。提前谢谢
答案 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
)
找到数组中最长的字符串:
$len = 0; foreach ($post_data as $v) { foreach($v as $value) { $len = max($len, strlen($value)); } }
$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);