$ _POST动态名称,不使用foreach

时间:2015-11-30 19:58:11

标签: php post dynamic

我试图从phpmailer中的输入中获取$ _POST动态名称。我想获得以计数器结尾的特定输入的值(例如productname1,productname2 ......数字是动态的," productname"是静态的)我不想打电话这些价值观一个接一个,因为这将是多余和荒谬的。

我已经搜索过,而我似乎得到的只是使用" foreach"和" key => $值&#34 ;.这不起作用,因为我想创建一个包含5列的表格。

而不是:

foreach($_POST as $pprice => $ppricevalue) {
if(strpos($pprice, 'Price/Unit') === 0) {
}}

我喜欢这样的事情:

$ppricevalue = $_POST[(strpos($pprice, 'Price/Unit') === 0)];

后者无效。非常感谢任何帮助!

EDIT ---------------------->

切入这里追逐,也许直接找到我想要完成的工作可能会给我一个很好的答案。

我设法使用div和" float:left"动态创建表格。使用div创建表的属性(实际上不是表,但是你明白了)。它就像一个魅力!然而,微软及其资本主义怪物,在这种情况下,微软Outlook,剥夺了一些HTML元素和大部分的CSS。我打赌如果我使用那些丑陋的MSO课程,Outlook就不会剥夺或破坏我的工作。

这是代码。诀窍是,你怎么把它变成一张桌子?一个真正的HTML表?

$msg .="<div style='width:100%; white-space:nowrap; color:fff; font-weight:bold;'><div style='width:55%; background-color:#888; margin:0px; text-indent:10px;padding:10px 0px 10px 0px; float:left;'>Product Desc.</div><div style='width:10%;background-color:#888;  margin:0px; text-indent:10px;padding:10px 0px 10px 0px;float:left;'>Price</div><div style='width:6%;background-color:#888; margin:0px; text-indent:10px;padding:10px 0px 10px 0px;float:left;'>Qty</div><div style='width:14%;background-color:#888; margin:0px; text-indent:10px;padding:10px 0px 10px 0px;float:left;'>Core</div><div style='width:10%;background-color:#888; margin:0px; text-indent:10px;padding:10px 0px 10px 0px;float:left;'>Total</div></div>";



$msg .= "<div style='width:100%; margin:0px;'><div style='float:left; width:55%; white-space:normal;'>";
foreach($_POST as $product => $productvalue) {
if(strpos($product, 'Product#') === 0) {
    $msg .= "<div style='border:1px solid #ccc; padding:5px; font-size:12px; height:40px;'>" . $productvalue . "</div>";
}
}
$msg .= "</div>";
$msg .= "<div style='float:left; width:10%;'>";
foreach($_POST as $pprice => $ppricevalue) {
if(strpos($pprice, 'Price/Unit') === 0) {
    $msg .= "<div style='border:1px solid #ccc; padding:5px; font-size:12px; height:40px;'>" . $ppricevalue . "</div>";
}
}
$msg .= "</div>";

$msg .= "<div style='float:left; width:6%;'>";
foreach($_POST as $quantity => $quantityvalue) {
if(strpos($quantity, 'Quantity') === 0) {
    $msg .= "<div style='border:1px solid #ccc; padding:5px; font-size:12px; height:40px;'>" . $quantityvalue . "</div>";
}
}
$msg .= "</div>";
$msg .= "<div style='float:left; width:14%;'>";
foreach($_POST as $core => $corevalue) {
if(strpos($core, 'Core') === 0) {
    $msg .= "<div style='border:1px solid #ccc; padding:5px; font-size:12px; height:40px;'>" . $corevalue . "</div>";
}
}
$msg .= "</div>";

$msg .= "<div style='float:left; width:10%;'>";
foreach($_POST as $total => $totalvalue) {
if(strpos($total, 'Sub') === 0) {
    $msg .= "<div style='border:1px solid #ccc; padding:5px; font-size:12px; height:40px;'>" . $totalvalue . "</div>";
}
}


$msg .= "<hr><div style='float:left; margin-left:-140%; overflow:visible; font-size:12px; line-height:2.1em;'>Net Total:</div><div style='border:1px solid #ccc; padding:5px; font-size:12px; height:13px;'>" . $nettotal . "</div>";
$msg .= "<div style='float:left; margin-left:-140%; overflow:visible;font-size:12px;line-height:2.1em;'>State Tax:</div><div style='border:1px solid #ccc; padding:5px; font-size:12px; height:13px;'>" . $statetaxtotal . "</div>";
$msg .= "<div style='float:left; margin-left:-140%; overflow:visible; font-size:12px;line-height:2.1em;'>Municipal Tax:</div><div style='border:1px solid #ccc; padding:5px; font-size:12px; height:13px;'>" . $municipaltaxtotal . "</div>";



$msg .= "<hr><div style='float:left; margin-left:-140%; overflow:visible;'><b>Grand Total:</b></div><div style='float:left; width:100%;'><div style='border:1px solid #ccc; padding:5px; font-size:12px; height:13px;'>" . $grandtotal . "</div>";
$msg .= "</div></div>";
$msg .= "</div></div>";

感谢您的快速回复!

1 个答案:

答案 0 :(得分:0)

不确定这是否正是您所需要的,但也许这可行吗?

$dynamic = count($_POST);
if (isset($_POST['productname'.$dynamic])) {
    $ppricevalue = $_POST['productname'.$dynamic]['Price/Unit'];
}