1

入力フィールドがいくつかある HTML のテーブルがあり (標準的なもの - 注文フォームです)、メールに挿入できるようにデータを抽出するだけです。

PHPメール機能に投稿しているテーブルからのデータの抽出を除いて、他のすべてを機能させることができました。

考えられるすべての解決策 (jQuery、javascript など) を Google で検索しましたが、適切な解決策が見つかりませんでした。私が得た最も近いものは、単に使用$(this).html()することでしたが、入力値を抽出しません。

これは本当に簡単な解決策だと思いますが、見つけることができます。

これは、いくつかのダミーデータを含む私のテーブルの例です:

<table id="order-table">
            <tr>
                 <th>Product Name</th> 
                 <th>Quantity</th>
                 <th>X</th>
                 <th>Unit Price</th>
                 <th>=</th>
                 <th style="text-align: right; padding-right: 30px;">Totals</th> 
            </tr>
            <tr class="odd">
                <td class="product-title">Dell R720 Xeon Server</em></td>
                <td class="qty"><input type="text" class="qty-input"></input></td>
                <td class="times">X</td>
                <td class="price-per-unit">£<span>1006</span></td>
                <td class="equals">=</td>
                <td class="row-total"><input type="text" class="row-total-input" disabled="disabled"></input></td>
            </tr>
            <tr class="even">
                <td class="product-title">VMWare Standard</em></td>
                <td class="qty"><input type="text" class="qty-input"></input></td>
                <td class="times">X</td>
                <td class="price-per-unit">£<span>306</span></td>
                <td class="equals">=</td>
                <td class="row-total"><input type="text" class="row-total-input" disabled="disabled"></input></td>
            </tr>

            <tr>
                <td colspan="6" style="text-align: right;">
                    ORDER SUBTOTAL: <input type="text" class="total-box" value="£0" id="product-subtotal" disabled="disabled"></input>
                </td>
            </tr>
        </table>

どんな助けでも大歓迎です。

4

2 に答える 2

1

私の理解が正しければ、フォームを使用して (すべての) 入力フィールドに名前を付けることができます。

この例では、フィールド名に名前を付けることが重要です。

入力フィールドに名前を付ける:

<input type="text" name="qty_input_odd" class="qty-input">

次に、ハンドラーで、入力の変数を次のように使用します。

$qty_input_odd=$_POST['qty_input_odd'];

他のフィールドについても同様です。

次に、そのすべての情報を電子メールに送信し、必要に応じてクライアントにコピーを送信できます.

を使用して、入力変数を設定する必要をなくすこともできますforeach

例えば:

foreach($_POST as $key => $val) {
    $message .= "$key: $val\n";
}

ハンドラーの完全な例:

<?php

$subject = "Form submission";
$sender = preg_replace("/[\r\n,;]/", "", $_POST['email']);
$to = "email@example.com";

$headers = "From: $sender" . "\r\n" .
"Reply-To: $to" . "\r\n" .
"X-Mailer: PHP/" . phpversion();

$redirect = "http://www.example.com/thank_you.php";
$message = "Submitted data:" . "\n\n";
foreach($_POST as $key => $val) {
    $message .= "$key: $val\n";
}

mail($to, $subject, $message, $headers);
header("Location: $redirect");
// You can use header or echo, but not both
// echo "Message sent";

?>
于 2013-08-26T22:26:39.457 に答える
0

jQuery の serialize メソッドと ajax メソッドを確認してください。

http://api.jquery.com/serialize/

http://api.jquery.com/jQuery.ajax/

Serialize を使用すると、ページ上のすべての入力を次のようにシリアル化できます。

var formParams = $('#order-table').serialize();

ajax メソッドを使用すると、そのデータをサーバーに渡すことができます。

$.ajax({
  url: url,
  data: formParams,
  success: success,
  dataType: dataType
});
于 2013-08-26T21:43:42.983 に答える