0

メールアドレスに送信する必要がある注文フォーム (テーブル) があります。PHP でメールを送信する方法の基本は理解していますが、この状況の詳細は理解していません (Cookie 配列 + フォーム要素の情報を取得し、PHP メーラーの本文に配置します)。

このリンクの回答を使用して、注文フォームを配列として Cookie に保存しています

次に、この JavaScript を使用して、#catalog div 内に HTML でテーブルを作成します。重要な部分は、テーブルを作成する for ループです。list.items(); の使用 「クッキー配列」を配列としてリストできます

function loopArrayMail() { 
if ($.cookie('productWishlist') == null) {
    html = ""; $('#catalog').html(html);
} else {
    var cookie = $.cookie("productWishlist"); var items = cookie ? cookie.split(/,/) : new Array();
    var html = "<table><tr><th>Product</th><th># to order</th></tr>";
    for(var i=0;i<items.length;i++){ html += "<tr><td width='450'>"+items[i]+"</td><td><input type='text' name='numberOfItems' /></td></tr>"; }
    html += "</table>"; $('#catalog').html(html);
}}

注文フォームの各アイテムの横に、ユーザーが必要なアイテムの数を入力するためのテキスト入力があります。 テーブルの内容と各フォーム入力をPHPでメールとして送信するにはどうすればよいですか?

私の推測では、Cookie 配列を取得する必要があり、反復ごとにすべてのテキスト入力の配列を取得し、foreach を使用して、それらが電子メールにまとめられるようにする必要があります (これを正確に行う方法がわからない)。また、注文フォームの項目数は増減するため、テキスト入力の数に制限がないことも重要です。

foreach を使用して複数の入力ボックスを取得する例を次に示しますが、Cookie の配列をテキスト入力と組み合わせるにはどうすればよいでしょうか?

4

2 に答える 2

0

loopArrayMail() 関数でフォーム要素を作成するときは、最初にフォーム要素に名前を付け、その後に配列であることを示す [] を付ける必要があります。

for(var i=0;i<items.length;i++){
  html += "<tr><td width='450'>"+items[i]+"</td><td><input type='text' name='ordernum[]' size='8' /></td></tr>";
}

Cookie は文字列であるため、最初にコンマである区切り文字に基づいて文字列を分解する必要があります。2 つの配列を変数に配置します。次に、for ループを使用してすべての配列を処理します。

function explode_trim($str, $delimiter = ',') {
  if ( is_string($delimiter) ) {
    $str = trim(preg_replace('|\\s*(?:' . preg_quote($delimiter) . ')\\s*|', $delimiter, $str));
    return explode($delimiter, $str);
  } 
return $str; }

$orderCookie = explode_trim($_COOKIE['productWishlist']);
$orderNum = $_POST['ordernum'];

for ( $i = 0; $i < count($orderCookie); $i++) {
  echo $orderCookie[$i] . ' = ' . $orderNum[$i] . '<br />';
}
于 2012-08-16T19:10:48.427 に答える
0

電子メール プログラムには JavaScript がなく、Cookie もないため、JavaScript を使用せずにプレーンな HTML のみを電子メールで送信することをお勧めします。

誰がそれを使えると言ったのかわかりませんが、電子メール プログラムはブラウザではありません。

ただし、電子メールでリンクを送信すると、すべてのユーザーがフル機能のインターネット ブラウザーでリンクを開くことができるため、これが探しているものになる可能性があります。


ここに画像の説明を入力

Netscape Communicator 4 は電子メールで JavaScript をサポートしていましたが、Cookie についてはわかりませんでした。

于 2012-08-14T07:38:40.827 に答える