PHP将电子邮件中的选定变量发送给用户

时间:2014-10-17 20:59:26

标签: javascript php mysql email

我想将所选对象发送到电子邮件地址。

这是一个演示: http://jsfiddle.net/62g3s8sz/

我知道可以用PHP发送电子邮件,我尝试了很多方法,但都失败了。

电子邮件需要与所选项目相对应。

因此,如果使用AMD FM2 A6-6400K双核3,9GHz选择Cooler Master K-380,我需要它列出这些项目

案例:Cooler Master K-380:价格 处理器:AMD FM2 A6-6400K双核3,9GHz:价格

然后将其发送到此人登录的电子邮件地址。 我知道$ loggedInUser->电子邮件将显示电子邮件地址。

如果有人知道如何通过电子邮件将所有这些信息发送给登录的人员,那就太棒了。

HTML:

<script type="text/javascript" src="js/formcalc.js"></script>

<form method="POST" name="contactform" action="contact-form.php" id="computerform">
    <div>
        <div class="cont_order">
            <fieldset>
                <legend></legend>
                <label>Case</label>
                <br>
                <label class='radiolabel'>
                    <input checked="checked" type="radio" name="selectedcase" value="2001" onclick="calculateTotal()" />Cooler Master K-350 - ($10)</label>
                <br/>
                <label class='radiolabel'>
                    <input type="radio" name="selectedcase" value="2002" onclick="calculateTotal()" />Cooler Master K-380 - ($20)</label>
                <br/>
                <br/>
                <label>Processor</label>
                <br>
                <label class='radiolabel'>
                    <input checked="checked" type="radio" name="selectedprocessor" value="3001" onclick="calculateTotal()" />AMD FM2 A4-5300 Dual Core 3,4GHz - ($10)</label>
                <br/>
                <label class='radiolabel'>
                    <input type="radio" name="selectedprocessor" value="3002" onclick="calculateTotal()" />AMD FM2 A6-6400K Dual Core 3,9GHz - ($20)</label>
                <br/>
                <br/>
                <label>Totale price</label>
                <div class="total">
                    <div id="case"></div>
                    <div id="totalPrice"></div>
                </div>
                <br>
            </fieldset>
        </div>
        <input type='submit' id='submit' value='Bestel' onclick="calculateTotal()" />
    </div>
</form>

JavaScript代码

 var case_prices = new Array();
 case_prices["2001"]=10;
 case_prices["2002"]=20;

 var processor_prices = new Array();
 processor_prices["3001"]=10;
 processor_prices["3002"]=20;




window.onload = function() 
{
    calculateTotal();
}

// getCasePrice() finds the price based on the selected case
// Here, we need to take user's the selection from radio button selection
function getCasePrice()
{  
    var casePrice=0;
    //Get a reference to the form id="computerform"
    var theForm = document.forms["computerform"];
    //Get a reference to the case the user Chooses name=selectedcase":
    var selectedCase = theForm.elements["selectedcase"];
    //We loop through each radio buttons
    for(var i = 0; i < selectedCase.length; i++)
    {
        //if the radio button is checked
        if(selectedCase[i].checked)
        {
            //we set cakeSizePrice to the value of the selected radio button
            //i.e. if the user choose the 8" cake we set it to 25
            //by using the cake_prices array
            //We get the selected Items value
            //For example cake_prices["Round8".value]"
            casePrice = case_prices[selectedCase[i].value];
            //If we get a match then we break out of this loop
            //No reason to continue if we get a match
            break;
        }
    }
    //We return the cakeSizePrice
    return casePrice;
}


// getCasePrice() finds the price based on the selected case
// Here, we need to take user's the selection from radio button selection
function getProcessorPrice()
{  
    var processorPrice=0;
    //Get a reference to the form id="computerform"
    var theForm = document.forms["computerform"];
    //Get a reference to the cake the user Chooses name=selectedprocessor":
    var selectedProcessor = theForm.elements["selectedprocessor"];
    //We loop through each radio buttons
    for(var i = 0; i < selectedProcessor.length; i++)
    {
        //if the radio button is checked
        if(selectedProcessor[i].checked)
        {
            //we set cakeSizePrice to the value of the selected radio button
            //i.e. if the user choose the 8" cake we set it to 25
            //by using the cake_prices array
            //We get the selected Items value
            //For example cake_prices["Round8".value]"
            processorPrice = processor_prices[selectedProcessor[i].value];
            //If we get a match then we break out of this loop
            //No reason to continue if we get a match
            break;
        }
    }
    //We return the cakeSizePrice
    return processorPrice;
}


function calculateTotal()
{
    //Here we get the total price by calling our function
    //Each function returns a number so by calling them we add the values they return together
    var computerPrice = getCasePrice() + getProcessorPrice() + getCoolerPrice() + getMotherboardPrice();

    //display the result
    var divobj = document.getElementById('totalPrice');
    divobj.style.display='block';
    divobj.innerHTML = "Totale prijs: &euro;"+computerPrice ;
}

谢谢:)

3 个答案:

答案 0 :(得分:0)

我不想粘贴答案的链接,但是......

http://php.net/manual/en/function.mail.php

所以你需要的就是这样的东西

$content = "..write it here yadda yadda whatever is your mail content ..";
$ok = mail($mailTo,"Hello, this is the mail subject",$content);

注意这将发送普通邮件,还有一些额外的步骤来制作HTML邮件,所有内容都覆盖在上面的链接上。祝你好运

很少有提醒:除非您安装了邮件守护程序并使用PHP,否则它可能无法在您的本地计算机上运行,​​而且您可能需要根据PHP的安装方式调整该mail()函数的最后一个参数。

答案 1 :(得分:0)

PHP代码必须位于 contact-form.php 中,或者您必须在HTML中更改该名称。 使用PHP的mail()功能。

在PHP中,表单数据在超全局变量$_REQUEST中可用。 请尝试print_r($_REQUEST);查看其中的内容。

答案 2 :(得分:0)

在php中,您通过mail()功能发送邮件(或者您可以使用外部邮件程序插件),这需要一些基本概念。例如:

    $to = "email-from-user@some-email-client.com";
    $subject = "You just made an order";
    $body = $message;
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    $headers .= "From: noreply@somewebsite.com";

    if (mail ($to, $subject, $body, $headers)) {
        echo "1";
    }  

快速解释,您需要一些参数才能使功能正常工作。我只是从我自己的邮件功能移动了一些项目,但我会解释。你需要一个目标($to变量)一个主题($subject变量和内容,我在这里定义为$body ...现在我也添加了标题,这是额外的,但对你来说,这可能很重要。前两行允许你在电子邮件中使用HTML,你可以用来标记邮件,比如使用表格。你也可以指定电子邮件的来源。

我在那里使用echo来检查它是否通过了mail函数,如果是这样的话,我在ajax调用return中使用该参数来建立一个附加div。

请记住,调用外部样式表并不适合这样做,所以最好还是要对元素进行内联样式处理。

修改

我看到你试图从电子邮件中获取字段集中的总数。由于您使用div来显示结束内容,因此发送表单将不允许您从总计中转移变量。 (顺便说一句,如果你提交这个表格,你实际上用3002和2001作为变量,而不是电子邮件中的名字,因此你必须做一些查询工作来推出正确的名称)因为我认为这些价格是同样在数据库中,您可以从那里计算出固定价格,并在查询中将其推出,然后您必须在$body变量中使用。

试着指出正确的方向