-5

基本的に、配列を作成して、配列データをメールに送信しようとしています。

私はまだ PHP を学んでおり、すべてを適切にセットアップする方法について混乱しています。

私を始めるためのアドバイスがあれば、本当に感謝しています。

PHP

<?php

if (isset($_POST['submit'])) {

    $to          = "test@mywebsite.com";
    $subject     = "New Order";
    $name_field  = $_POST['name'];
    $phone_field = $_POST['phone'];


    foreach ($food as $key => $item) {
        $body.= $key." - ".$item ["how_many"]
    }


    $food = array(
    'mexican_torta' => array('how_many' => 2, 'customize' => NO),
    'fish_sandwich' => array('how_many' => 0, 'customize' => 0)
    )
    );

    echo $food['mexican_torta']['how_many'];
}

$body = "Name: $name_field\nPhone: $phone_field\nKey: $key\nItem $item"

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

HTML

<div class ="item">
    <img style="float:left; margin-right:15px; border:1px Solid #000; width:200px; height:155px;" src="images/mexicantortas.jpg">
    <h1>Mexican Torta - $8.50</h1>
    <h2>How Many? <font color="#999999">Ex: 1, 2, 3...?</font></h2> 
    <input type='text' name='food[mexican_torta][how_many]'>
    <h3>Customize It? <font color="#999999">Ex: No Lettuce, Extra Cheese...</font></h3> 
    <input type='text' name='food[mexican_torta][customize]'>
</div><!-- ITEM_LEFT -->

<div class ="item">
    <img style="float:left; margin-right:15px; border:1px Solid #000; width:200px; height:155px;" src="images/fishsandwich.jpg">
    <h1>Fish Sandwich - $8.50</h1>
    <h2>How Many? <font color="#999999">Ex: 1, 2, 3...?</font></h2> 
    <input type='text' name='food[fish_sandwich][how_many]'>
    <h3>Customize It? <font color="#999999">Ex: No Lettuce, Extra Cheese...</font></h3> 
    <input type='text' name='food[fish_sandwich][customize]'>
</div><!-- ITEM_LEFT -->
4

3 に答える 3

2

$foodループの前ではなく、ループの後に定義されており、余分な末尾があります):

$food = array( 
    // NO is also not defined as of yet, see Matheiu's answer.
    'mexican_torta' => array('how_many' => 2, 'customize' => NO), 
    'fish_sandwich' => array('how_many' => 0, 'customize' => 0)
);

ループの前に、使用する変数を定義することをお勧めします。

$body = '';
foreach( $food as $key => $item) {

ループでは、セミコロンがありません:

$body.= $key." - ".$item ["how_many"]; 
                                     ^

そして、body ステートメントにセミコロンがありません:

$body = "Name: $name_field\nPhone: $phone_field\nKey: $key\nItem $item";
                                                                       ^

最後に、この最後のステートメントは を上書きする$bodyため、ループは何も実行しません。次のようなことを考えてみましょう:

$body .= "Name: $name_field\nPhone: $phone_field\nKey: $key\nItem $item";

and は配列の最後の要素を指しますが、 $keyandは配列であるため、正しく文字列に変換されないことに注意してください。$item$food$item

于 2012-08-22T18:17:24.747 に答える
1

配列の作成中に解析エラーが発生しました。それが機能していないときの理由はおそらくそれです:

$food = array(
  'mexican_torta' => array('how_many' => 2, 'customize' => NO),
  'fish_sandwich' => array('how_many' => 0, 'customize' => 0)
);

そしてNO、定義されていません。一貫性を保ち、に変更する必要があります0

于 2012-08-22T18:14:56.390 に答える