【问题标题】:Calculation of item and quantity price then sending email计算项目和数量价格然后发送电子邮件
【发布时间】:2012-06-25 09:11:52
【问题描述】:

我有一个网站,我们将提供一些产品供会员购买。 请看http://jsfiddle.net/TbeQx/

<form action="" name="priceCalc" method="POST">
  I Am Paying For :
  <select name="product" onchange="price();">
      <option value="15">item 1 - $15.00</option>
      <option value="35">item 2 - $35.00</option>
      <option value="35">item 3 - $35.00</option>
      <option value="29.90">item 4 - $29.90</option>
      <option value="29.90">item 5 - $29.90</option>
      <option value="26.90">item 6 - $26.90</option>
      <option value="32.90">item 7 - $32.90</option>
      <option value="59.90">item 8 - $59.90</option>
      <option value="59.90">item 9 - $59.90</option>
    </select>
    <br />
    <br />

    Quantity :
  <select name="quantity" onchange="price();">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
    </select>
    <br />
    <br />
    Please deposit the freight free full total of <br />
    <span style="color:red; font-size:18px;" id="prices">$</span> 
    into our account : 
    <br />
    <input type="submit" name="submit" value="BUY NOW!" />
</form>​

/* JavaScript */
    function price() {
        var qty = document.priceCalc.quantity;
        var itm = document.priceCalc.product;
        var price = parseInt(qty.value) * parseInt(itm.value);
        document.getElementById("prices").innerHTML = '$' + price;
    }​

如何自动计算价格并将其显示在两个下拉菜单的 id="prices" 跨度标签之间。

这向用户显示总数是多少。

然后在提交时,我需要它向指定的电子邮件地址发送电子邮件说.. "数量" x "项目名称" = "数量"

(例如,2 x 项目 4 - $29.90 = $59.80)

我的php在这里http://jsfiddle.net/8hzNV/

<?php
$quantity = $_POST["quantity"];
$item = $_POST["product"];
$subject = "Website Sale!";
$emailto = "myemail@test.com";


// prepare email body text
$body .= "";
$body .= "To Sales Team";
$body .= "\n";
$body .= "\n";
$body .= "I have purchased  ";
$body .= $quantity;
$body .= "x  ";
$body .= $item;
$body .= "\n";
$body .= "\n";
$body .= "Please look out for my payment in the account over the next few days.";

// send email 
$success = mail($emailto, $subject, $body");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=../order_sent.php\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=../index.php\">";
}

?>​

我自己也尝试过。但这不是我的强项,希望我能寻求一些专家的建议。 提前致谢!!

【问题讨论】:

  • 请在此处发布您的代码,而不是在外部网站上。

标签: php javascript jquery forms


【解决方案1】:

首先,如果你将jQuery导入你的项目,为什么不使用jQuery选择器,这样更简单?

  • 你应该使用parseFloat而不是parseInt
  • 您只是发布Item PriceItem Quantity,如果您想将项目名称附加到电子邮件正文,您也应该发布它。所以你可以用 intput[type=hidden]

这是更新后的 HTML

<form action="" name="priceCalc" method="POST">
  I Am Paying For :
  <select name="product">
      <option>Select Item</option>
       <option value="15">item 1 - $15.00</option>
       <option value="35">item 2 - $35.00</option>
       <option value="35">item 3 - $35.00</option>
       <option value="29.90">item 4 - $29.90</option>
       <option value="29.90">item 5 - $29.90</option>
       <option value="26.90">item 6 - $26.90</option>
       <option value="32.90">item 7 - $32.90</option>
       <option value="59.90">item 8 - $59.90</option>
       <option value="59.90">item 9 - $59.90</option>
    </select>
    <br />
    <br />

    Quantity :
  <select name="quantity" >
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
    </select>
    <br />
    <br />
    Please deposit the freight free full total of <br />
    <span style="color:red; font-size:18px;" id="prices">$</span> into our account : 
    <br />
    <input type="hidden" id="itemname" name = "itemname" value= "">
    <input type="submit" name="submit" value="BUY NOW!" />
</form>​

你不需要设置内联函数price(),

这是使用 jQuery 选择器更新的 JavaScript 代码

$(function() {
    $("select[name='product'],select[name='quantity']").change(function() {
        var qty = $("select[name='quantity'] option:selected");
        var itm = $("select[name='product'] option:selected");
        var price = parseFloat(qty.val()) * parseFloat(itm.val());
        $("#prices").html('$' + price);
        $("#itemname").val(itm.html());
    });
});
​

在 PHP 页面中你应该从 POST 数组中获取 $itemname,

PHP页面应该是这样的,

<?php
    $quantity = $_POST["quantity"];
    $item = $_POST["product"];
    $itemname = $_POST["itemname"];
    $subject = "Website Sale!";
    $emailto = "myemail@test.com";


    // prepare email body text
    $body .= "";
    $body .= "To Sales Team";
    $body .= "\n";
    $body .= "\n";
    $body .= "I have purchased  ";
    $body .= $quantity;
    $body .= "x  ";
    $body .= $itemname;
    $body .= " = ";
    $body .= $item * $quantity;
    $body .= "\n";
    $body .= "\n";
    $body .= "Please look out for my payment in the account over the next few days.";

    // send email 
    $success = mail($emailto, $subject, $body");

    // redirect to success page 
    if ($success){
      print "<meta http-equiv=\"refresh\" content=\"0;URL=../order_sent.php\">";
    }
    else{
      print "<meta http-equiv=\"refresh\" content=\"0;URL=../index.php\">";
    }

?>​

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 2020-07-25
    • 2014-12-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多