0

フォーム データを送信すると、PHP コードの 13 行目 (array_push($order,$add_order);) で次のエラーを受け取りました。「警告: foreach() に無効な引数が指定されました...」

この PHP コードを機能させる最善の方法は何ですか?

現在の電子メール出力は次のとおりです (名前と電話番号フィールドを除いて、どのデータも適切に送信されていないようです)。

Name: Alex
Phone: 5104545778

Item: Array
Quantity:
Add:
Message:

PHP:

<?php

if(isset($_POST['submit'])) {
$to = "test@mywebsite.com"; 
$subject = "New Order";
$name_field = $_POST['name'];
$email_field = $_POST['email'];

$order = array();
foreach($_POST['item'] as $item => $name) {
    if ($_POST['quantity_'.$name] > 0) {
        $add_order = array('pretty'=>$_POST['pretty-name_'.$name],'qty'=>$_POST['quantity_'.$name],'message'=>$_POST['message_'.$name]);
        array_push($order,$add_order);
    }
}

$body = "From: $name_field\nE-Mail: $email_field\n";

$body .= "Their Order:\n";
foreach ($order as $item){
    $body .= "--".$item['qty']."x ".$item['pretty']."\n
    Extra: ".$item['message']."\n\n";
}

echo "Data has been submitted to $to!";
mail($to, $subject, $body);
}

?>

HTML:

<form method="POST" action="neworder.php">

<div class ="item_left">
<img src="images/mexicantortas.jpg" border="2" width="200px" height="150px"><br>
Mexican Torta - $8.50<input name="item[]" type="hidden" value="torta"/>
<input name="pretty-name_torta" type="hidden" value="Mexican Torta"/><br>
How Many? <input name="quantity_torta" type="text" /><br>
<input name="message_torta" type="text" value="Enter special order instructions here..." />
</div><!-- ITEM_LEFT -->
<br />

<div class ="item_center">
<img src="images/fishsandwich.jpg" border="2" width="200px" height="150px"><br>
Fish Sandwich - $8.50<input name="item[]" type="hidden" value="fish"/>
<input name="pretty-name_fish" type="hidden" value="Fish Sandwhich"/><br>
How Many? <input name="quantity_fish" type="text" /><br>
<input name="message_fish" type="text" value="Enter special order instructions here..." />
</div><!-- ITEM_CENTER -->
<br />

<div class ="item_right">
<img src="images/hamburgers.jpg" border="2" width="200px" height="150px"><br>
Hamburger w/ Fries - $7.00<input name="item[]" type="hidden" value="hamburger"/>
<input name="pretty-name_hamburger" type="hidden" value="Hamburger"/><br>
How Many? <input name="quantity_hamburger" type="text" /><br>
<input name="message_hamburger" type="text" value="Enter special order instructions here..." />
</div><!-- ITEM_RIGHT -->
<br />

<div class="horizontal_form">
<div class="form">
<h2>Place Your Order Now: <font size="3"><font color="#037B41">Fill in the form below,    and we'll call you when your food is ready to be picked up...</font></font></h2>
<p class="name">
<input type="text" name="name" id="name" style="text-align:center;" onClick="this.value='';" value="Enter your name"/>
</p>
<p class="phone">  
<input type="text" name="phone" id="phone" style="text-align:center;" onClick="this.value='';" value="Enter your phone #"/>
</p>
<p class="submit">
<input type="submit" value="Place Order" name="submit"/>
</p>
</div><!-- FORM -->
</div><!-- HORIZONTAL_FORM -->

</form>
4

1 に答える 1

0

どこにも値がない場合item、受信ページに投稿されません。

isset値が存在するis_arrayかどうかを確認し、それが配列かどうかを確認するために使用します。

于 2012-08-20T18:48:46.373 に答える