dongyi6543 2010-07-05 17:34
浏览 28
已采纳

jQuery看起来很棒。 现在我如何获取要发送的PHP电子邮件?

I am using jQuery to swap out the image here after the submit button on an email from is submitted. This part works very well, however, I also need to generate the email from the form contents.

Here is the form:

            <form action="estimate.php" action="post">
                <fieldset>
                <input type="text" name="name" value="FULL NAME" onfocus="if (this.value=='FULL NAME') this.value='';"/>
                <input type="text" name="phone" value="PHONE NUMBER" onfocus="if (this.value=='PHONE NUMBER') this.value='';"/>
                <input type="text" name="email" value="EMAIL" onfocus="if (this.value=='EMAIL') this.value='';"/>
                <input type="text" name="date" value="MOVE DATE" onfocus="if (this.value=='MOVE DATE') this.value='';"/>
                <input type="text" name="origin" value="ORIGINATING ADDRESS" onfocus="if (this.value=='ORIGINATING ADDRESS') this.value='';"/>
                <input type="text" name="destination" value="DESTINATION ADDRESS" onfocus="if (this.value=='DESTINATION ADDRESS') this.value='';"/>
                <select name="move-type">
                    <option value="" selected="selected">TYPE OF MOVE</option>
                    <option value="Private">Private</option>
                    <option value="Commercial">Commercial</option>
                </select>
                <input id="quoteSubmit" 
                    type="image" src="_images/btn_submit.png" alt="" 
                    onmouseover="javascript:this.src='_images/btn_submit-over.png'" 
                    onmouseout="javascript:this.src='_images/btn_submit.png'"/>
                </fieldset>
            </form>

Here is the jQuery:

        // free quote form
    $('#freeQuote form').submit(function(e){

    //Set the data ready for ajax post
    var formdata = $(this).serialize();

    $.post("estimate.php",formdata,function(data){
        if(data.error)
        {
           alert('Error: ' + data.error);
           return;
        }
    });

    //The Image
    var Image = $('<img />').attr({src:'_images/free-quote-confirm.png', width:231, height:267, alt:"Success"});

    //Remove the form
    $('#freeQuote form').remove()

    //Add the image inside the div
    $('#freeQuote').append(Image);

    //Return false so the form does not send as normal. you can also use e.PreventDefault():
    return false;
});

Here is the PHP:

<?php # sends contents of  Free Estimate form

if (isset($_POST['submitted'])) {
$errors = array();

// Check for empty fields

if (empty($_POST['name'])) {
    $errors[] = 'Please enter your name.';
} 

if (empty($_POST['email'])) {
    $errors[] = 'Please enter your email address.';
} 

if (empty($_POST['date'])) {
    $errors[] = 'Please enter the date of your move.';
} 

if (empty($_POST['origin'])) {
    $errors[] = 'Please enter the origin of your move.';
} 

if (empty($_POST['destination'])) {
    $errors[] = 'Please enter the destination.';
} 

if (empty($errors)) { // everything is okay

$body = "The following Free Estimate Request has been submitted:


    Submitted by: {$_POST['name']}
    E-mail: {$_POST['email']}
    Phone: {$_POST['phone']}
    Move date {$_POST['date']}
    Moving from: {$_POST['origin']}
    Moving to: {$_POST['destination']}
    Move type: {$_POST['move-type']};

    mail ('forrest@rouviere.com', 'Free Estimate Request', $body, 'From: admin@movingsimplified.com');      

    // end email

} else {    
    echo '<h2>Error!</h2>
    <p class="errors">The following error(s) occurred:<br />';
    foreach ($errors as $msg) {
        echo " - $msg<br />
";
    }
    echo '</p><p>Please go back and try again.</p><p><br /></p>';
}
};

?>

The basic problem is, I can click the submit button without anything entered in the fields, and I don't get an email.

Any help would be appreciated.

Thanks.

  • 写回答

1条回答 默认 最新

  • dpdrtj1075 2010-07-05 17:37
    关注

    Unless your code snipper is in correct you have the following issue..

    $body = " // there is no closing "
    

    You also state in your question:

    The basic problem is, I can click the submit button without anything entered in the fields, and I don't get an email.

    Your example would suggest (if no syntax errors) that you don't want an email sent if there are errors.

    New corrected request.php

    <?php # sends contents of  Free Estimate form
    
    if (isset($_POST['submitted'])) {
        $errors = array();
    
        // Check for empty fields
    
        $checkArray = array('name', 'email', 'date', 'origin', 'destination');
        foreach($checkArray as $check) {
            if (empty($_POST[$check])) {
                $errors[] = 'Please enter your '.$check;
            } 
        }
    
        if (empty($errors)) { // everything is okay
    
            $body = "The following Free Estimate Request has been submitted:
    
    
                Submitted by: {$_POST['name']}
                E-mail: {$_POST['email']}
                Phone: {$_POST['phone']}
                Move date {$_POST['date']}
                Moving from: {$_POST['origin']}
                Moving to: {$_POST['destination']}
                Move type: {$_POST['move-type']};
    
            ";
    
            mail ($to, 'Free Estimate Request', $body, 'From:  '.$from);      
    
            // end email
    
        } else {    
            // If error then NO Email sent
            echo '<h2>Error!</h2>
            <p class="errors">The following error(s) occurred:<br />';
            foreach ($errors as $msg) {
                echo " - $msg<br />
    ";
            }
            echo '</p><p>Please go back and try again.</p><p><br /></p>';
        }
    };
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法