Javascript 从模板中使用PHPjQuery和HTML5的联系人表单

Javascript 从模板中使用PHPjQuery和HTML5的联系人表单,javascript,php,html,jquery,twitter-bootstrap,Javascript,Php,Html,Jquery,Twitter Bootstrap,这就是与CSS集成的Html页面,PHP中的表单和对js脚本的调用 <section class="contact-section"> <div class="container"> <div class="d-none d-sm-block mb-5 pb-4"></div> <div class="

这就是与CSS集成的Html页面,PHP中的表单和对js脚本的调用

<section class="contact-section">
        <div class="container">
            <div class="d-none d-sm-block mb-5 pb-4"></div>
                <div class="row">
                <div class="col-12">
                    <h2 class="contact-title">Inoltra qui la tua richiesta</h2>
                </div>
                <div class="col-lg-8">
                    <form class="form-contact contact_form" action="contact_process.php" method="post" id="contactForm" novalidate="novalidate">
                        <div class="row">
                            <div class="col-12">
                                <div class="form-group">
                                    <textarea class="form-control w-100" name="message" id="message" cols="30" rows="9" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Inserisci il Messaggio'" placeholder="Inserisci il Messaggio"></textarea>
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control valid" name="name" id="name" type="text" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Nome'" placeholder="Nome">
                                </div>
                            </div>
                            <div class="col-sm-6">
                                <div class="form-group">
                                    <input class="form-control valid" name="email" id="email" type="email" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Inserisci l'indirizzo mail'" placeholder="Email">
                                </div>
                            </div>
                            <div class="col-12">
                                <div class="form-group">
                                    <input class="form-control" name="subject" id="subject" type="text" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Inserisci Oggetto'" placeholder="Inserisci Oggetto">
                                </div>
                            </div>
                        </div>
                        <div class="form-group mt-3">
                            <button type="submit" class="button button-contactForm boxed-btn">Invia</button>
                            <br><br>Questo sito è protetto dal sistema antispam Google Recaptcha.
                            <a href="https://policies.google.com/privacy">Privacy Policy</a> e <a href="https://policies.google.com/terms">Termini di servizio</a>
                        </div>
                    </form>
                </div>
我的问题是,为什么所有上传的内容都似乎没有任何效果?有线索吗


请帮助我用我微薄的知识检查代码,但我找不到错误。

这是我的工作代码,你应该试试。只要改变变量

这是我的简单HTML联系人表单,带有类似您的CSS

<div class="contact-form">
            <h4 class="title-top-w3">Get in touch<span>|</span></h4>
            <h5 class="title-main-w3ls">Contact Me</h5>
            
            <div class="alert" id="status"></div>
            
                <div class="col-md-6 styled-input-w3-agile">
                    <input type="text" name="Full Name" id="name" placeholder="Enter your name" required="">
                </div>
                <div class="col-md-6 styled-input-w3-agile">
                    <input type="email" name="Email" id="email" placeholder="Enter your email" required="">
                </div>
                <div class="clearfix"> </div>
            <div class="styled-input-w3-agile">
                    <input type="phone" name="" id="phone" placeholder="Enter phone number" required="">
                </div>
            <div class="clearfix"> </div>
                <div class="styled-input-w3-agile">
                    <input type="text" name="Subject" id="title" placeholder="Enter the discussion title" required="">
                </div>
            <div class="clearfix"> </div>
                <div class="styled-input-w3-agile textarea-grid">
                    <textarea name="Message"  id="message" placeholder="Write your message" required=""></textarea>
                </div>
                <input type="submit" id="send" value="Send Message">
                
        </div>
下面是sendmail.php,其中sendmail类执行函数getMailStatus,该函数在验证后将所有参数发送到mail()函数中,并返回JQuery中使用的$status

  <?php
    

class Sendmail{
    
function getMailStatus(){
    //Check For Submit
        $status = '';
        //Get Form Data
        $name = htmlspecialchars($_POST['name']);
        $phone = htmlspecialchars($_POST['phone']);
        $email = htmlspecialchars($_POST['email']);
        $title = htmlspecialchars($_POST['title']);
        $message = htmlspecialchars($_POST['message']);

        if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
                $status = '3';
            } else {
                // Passed
                // Recipient Email
                $toEmail = 'omotayotemi47@gmail.com';
                $subject = ''.$title;
                $body = '<h2>Contact Request</h2>
                    <h4>Name</h4><p>'.$name.'</p>
                    <h4>Phone Number</h4><p>'.$phone.'</p>
                    <h4>Email</h4><p>'.$email.'</p>
                    <h4>Message</h4><p>'.$message.'</p>
                    ';

                //Email Headers
                $headers ="MIME-Version: 1.0" ."\r\n";
                $headers .="Content-Type:text/html;charset=UTF-8" . "\r\n";

                // Additional Headers
                $headers .= "From: " .$name. "<".$email.">". "\r\n";

                if(mail($toEmail, $subject, $body, $headers)){
                    // Email Sent
                    $status = '1';
                } else {
                    //Failed
                    $status = '2';
                }
            }
        
    return $status;
}
    
}
        
$test = new Sendmail();
    echo $test->getMailStatus();
?>

这是我的工作代码,你应该试试。只要改变变量

这是我的简单HTML联系人表单,带有类似您的CSS

<div class="contact-form">
            <h4 class="title-top-w3">Get in touch<span>|</span></h4>
            <h5 class="title-main-w3ls">Contact Me</h5>
            
            <div class="alert" id="status"></div>
            
                <div class="col-md-6 styled-input-w3-agile">
                    <input type="text" name="Full Name" id="name" placeholder="Enter your name" required="">
                </div>
                <div class="col-md-6 styled-input-w3-agile">
                    <input type="email" name="Email" id="email" placeholder="Enter your email" required="">
                </div>
                <div class="clearfix"> </div>
            <div class="styled-input-w3-agile">
                    <input type="phone" name="" id="phone" placeholder="Enter phone number" required="">
                </div>
            <div class="clearfix"> </div>
                <div class="styled-input-w3-agile">
                    <input type="text" name="Subject" id="title" placeholder="Enter the discussion title" required="">
                </div>
            <div class="clearfix"> </div>
                <div class="styled-input-w3-agile textarea-grid">
                    <textarea name="Message"  id="message" placeholder="Write your message" required=""></textarea>
                </div>
                <input type="submit" id="send" value="Send Message">
                
        </div>
下面是sendmail.php,其中sendmail类执行函数getMailStatus,该函数在验证后将所有参数发送到mail()函数中,并返回JQuery中使用的$status

  <?php
    

class Sendmail{
    
function getMailStatus(){
    //Check For Submit
        $status = '';
        //Get Form Data
        $name = htmlspecialchars($_POST['name']);
        $phone = htmlspecialchars($_POST['phone']);
        $email = htmlspecialchars($_POST['email']);
        $title = htmlspecialchars($_POST['title']);
        $message = htmlspecialchars($_POST['message']);

        if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
                $status = '3';
            } else {
                // Passed
                // Recipient Email
                $toEmail = 'omotayotemi47@gmail.com';
                $subject = ''.$title;
                $body = '<h2>Contact Request</h2>
                    <h4>Name</h4><p>'.$name.'</p>
                    <h4>Phone Number</h4><p>'.$phone.'</p>
                    <h4>Email</h4><p>'.$email.'</p>
                    <h4>Message</h4><p>'.$message.'</p>
                    ';

                //Email Headers
                $headers ="MIME-Version: 1.0" ."\r\n";
                $headers .="Content-Type:text/html;charset=UTF-8" . "\r\n";

                // Additional Headers
                $headers .= "From: " .$name. "<".$email.">". "\r\n";

                if(mail($toEmail, $subject, $body, $headers)){
                    // Email Sent
                    $status = '1';
                } else {
                    //Failed
                    $status = '2';
                }
            }
        
    return $status;
}
    
}
        
$test = new Sendmail();
    echo $test->getMailStatus();
?>


什么不起作用?处理处理过程的PHP还是javascript?你做了什么调试?我不知道什么不起作用,因为当我试着看看哪里出了问题时,调试软件似乎一切正常,所以我想知道我是否遗漏了什么,或者我的服务器有问题。你确切的意思是什么调试软件?例如,您是否使用浏览器中的开发人员工具检查AJAX的控制台错误和问题?确切地说,你所说的“什么都不起作用”是什么意思?清楚地描述加载页面时发生的情况。你能看到表格吗?您可以输入文本并提交吗?当您尝试提交时会发生什么?验证有效吗?它是否尝试提交表单?数据是否到达PHP。我还注意到,您的PHP代码并不费心检查
mail()
是否成功。是的,我使用了chrome的控制台来查看页面中的所有脚本是否都正常运行,并且看起来还可以。但我重复一遍,我完全是php和jscript的noob,所以如果您有建议,他们会非常感激“当我尝试提交表单时,什么也没有发生”……这表明JavaScript失败(因此您可能有控制台错误,或者您的脚本没有正确绑定到事件),或者AJAX失败(在这种情况下,通常还会出现控制台错误,或者至少您可以在浏览器的网络工具中看到一些东西,这些东西表明调用contact_process.php时发生了什么)。“什么都没有发生”这不是对问题的一个有用的描述——很可能发生了一些事情,你只是还没有观察到而已。什么不起作用?处理处理过程的PHP或javascript?你做了什么调试?我不知道什么不起作用,因为当我试着看出哪里出了问题时,调试软件似乎都没问题因此,我想知道我是否遗漏了一些东西,或者我的服务器出现了问题。你说的调试软件到底是什么意思?例如,你是否使用浏览器中的开发人员工具来检查控制台错误和AJAX问题?你说的“什么都不起作用”是什么意思,准确地说?清楚地描述加载页面时发生的情况。你能看到表单吗?你能输入文本并提交吗?当你尝试提交时会发生什么?验证有效吗?它是否尝试提交表单?数据是否到达PHP。我还注意到,你的PHP代码不需要检查
mail()
成功与否。是的,我使用chrome的控制台查看页面中的所有脚本是否运行良好,看起来还可以。但我重复一遍,我完全是php和jscript的noob,因此如果您有建议,他们会非常感激“当我尝试提交表单时,什么也没有发生”…这表明JavaScript失败了(因此,要么您有控制台错误,要么您的脚本没有正确绑定到事件),要么调用了失败的AJAX(其中经常出现控制台错误,或者至少您可以在浏览器的网络工具中看到一些东西,表明调用contact_process.php时发生了什么)。“什么都没有发生”但是,这不是对问题的有用描述-很可能发生了一些事情,你只是还没有观察到而已。请解释你改变了什么,以及为什么-这有助于其他人从你的回答中学习这里有太多的代码,不需要任何解释。一个有用的回答实际上是对代码进行注释,并解释我的错误t、 否则,你会期望人们自己发现并理解其中的重要部分,如果他们一开始就带着相关问题来到这里,这对他们来说可能很困难。而且这样做很费时,而你,已经知道代码的人,可以让它更容易理解。更简单、更有用的你的答案是,它会吸引更多的投票。我已经编辑了代码,并简要解释了每个阶段会发生什么。这是一个工作代码,我在实现后使用了一点研究,你正在进行中。我不得不懒洋洋地使用我自己的变量,这些变量与他的相对应。谢谢。请解释你改变了什么,以及为什么-这有助于其他人改变从你的回答中学习这里有太多的代码,不需要任何解释。一个有用的答案实际上是对代码进行注释和解释。否则,你期望人们自己发现并理解代码的重要部分,如果他们首先带着相关问题来到这里,很可能很难理解r他们。这样做也很费时,而你,谁已经知道的代码可以使它容易理解。你的答案越简单和有用,它将吸引更多的选票。我编辑了代码,并简要说明了在每个阶段发生的事情。这是一个工作代码,我正在使用一个小研究后实现,你是以你的方式。我不得不懒洋洋地使用我自己的变量,这些变量是相对于他的。谢谢
  <?php
    

class Sendmail{
    
function getMailStatus(){
    //Check For Submit
        $status = '';
        //Get Form Data
        $name = htmlspecialchars($_POST['name']);
        $phone = htmlspecialchars($_POST['phone']);
        $email = htmlspecialchars($_POST['email']);
        $title = htmlspecialchars($_POST['title']);
        $message = htmlspecialchars($_POST['message']);

        if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
                $status = '3';
            } else {
                // Passed
                // Recipient Email
                $toEmail = 'omotayotemi47@gmail.com';
                $subject = ''.$title;
                $body = '<h2>Contact Request</h2>
                    <h4>Name</h4><p>'.$name.'</p>
                    <h4>Phone Number</h4><p>'.$phone.'</p>
                    <h4>Email</h4><p>'.$email.'</p>
                    <h4>Message</h4><p>'.$message.'</p>
                    ';

                //Email Headers
                $headers ="MIME-Version: 1.0" ."\r\n";
                $headers .="Content-Type:text/html;charset=UTF-8" . "\r\n";

                // Additional Headers
                $headers .= "From: " .$name. "<".$email.">". "\r\n";

                if(mail($toEmail, $subject, $body, $headers)){
                    // Email Sent
                    $status = '1';
                } else {
                    //Failed
                    $status = '2';
                }
            }
        
    return $status;
}
    
}
        
$test = new Sendmail();
    echo $test->getMailStatus();
?>