0

私はPHPを初めて使用し、同様のクエリをいくつか見ましたが、2つの配列が含まれているため、それらを並べて配置する方法がわかりません。誰かが助けることができますか?非常に高く評価!引っ越して自分のものを販売するサイトを作っているのですが、フォームに選択したアイテムとオファー金額のセクションがあります。メールに並べて表示してほしい。

あなたは私がここで作っているサイトを見ることができます:http://www.stasale.com

私は次のコードを持っています:

<table border="1">
<tr>
<th>Image</th>
<th>Name</th>
<th>Condition</th>
<th>Description</th>
<th>Asking Price</th>
<th>Select Item</th>
<th>Offer Value</th>
</tr>

<?php   
 require_once('appvars.php');
 require_once('connectvars.php');
 // Connect to the database 
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
$query = "SELECT * FROM stasale ORDER BY date DESC";
$data = mysqli_query($dbc, $query);

while ($row = mysqli_fetch_array($data)) { 

  if (is_file(GW_UPLOADPATH . $row['image']) && filesize(GW_UPLOADPATH . $row['image']) > 0) {
  echo '<tr><td><img src="' . GW_UPLOADPATH . $row['image'] . '" alt="' . $row['image'] . '" width="100" height="100"/></td>
  <td>' . $row['name'] . '</td>
  <td>' . $row['condition'] . '</td> 
  <td>' . $row['description'] . '</td> 
  <td>' . $row['askingprice'] . '</td> 
  <td><form method="post" action="mail.php"><input type="checkbox" name="itemname[]" value="' . $row['id'] . '">Select</td> 
  <td>Offer: <input type="text" name="offer[]"></td></tr>';
}
else {
  echo 'Invalid row';
}
} ?>

<tr><td colspan="3">Contact Name:</td><td colspan="4"><input type="text" name="coname" width="300" ></td></tr>
<tr><td colspan="3">Contact Number:</td><td colspan="4"><input type="text" name="conumber" width="300" ></td></tr>
<tr><td colspan="3">Contact Email:</td><td colspan="4"><input type="text" name="coemail" width="300" ></td></tr>
<tr><td colspan="3">Questions/Comments:</td><td colspan="4"><input type="text" name="comments" width="300" height="100"></td></tr>

<tr><td colspan="7" align="center"><input type="submit" value="Send Request" name="submit" style="width:500px"/></form></td></tr>
</table>

itemname[]またはoffer[]から値を取得してmail.phpページに表示する方法がわからないようですが、これは完全に間違っていると思います。

if (isset($_POST['submit'])) {
$name = $_POST['coname'];
$email = $_POST['coemail'];
$number = $_POST['conumber'];
$comments = $_POST['comments'];
foreach ($_POST['itemname'] as $itemname)
foreach ($_POST['offer'] as $offer)

{

}
$to = 'shinobuden@gmail.com';
$subject = 'STASALE order';
$msg = "$name, $email, $number, $comments \n" .
  "I would like: $itemname" .
  "$offer";

mail($to, $subject, $msg, 'From:' . $email);

$to = "$email";
$subject = 'I have received your request - Si';
$msg = 'Thank you for contacting me! I have received your request and will reply shortly! ~ Si x';
$from = 'shinobuden@gmail.com';

mail($to, $subject, $msg, 'From:' . $from); 

echo '<p><strong>Thanks for your request. I will respond as soon as possible.</strong></p>';


}

?>

よろしくお願いします!

4

1 に答える 1

0

あなたはこのようなことをすることができます:

foreach ($_POST['offer'] as $key => $value) {
        if ($value) {
            $offer_arr[] = $value;
        }
    }

    $str = '';
    for ($i = 0; $i <= count($_POST['itemname']); $i++) {
        if ($_POST['itemname'][$i]) {
            $str .= 'Item: ' . $_POST['itemname'][$i] . ' Offer: ' . $offer_arr[$i] . ', ';
        }
    }

$strすべてのアイテムとオファーが隣り合って含まれます。

于 2013-02-04T19:44:36.070 に答える