表单字段值未传递到PHP文件

表单字段值未传递到PHP文件,php,jquery,html,ajax,phpmailer,Php,Jquery,Html,Ajax,Phpmailer,因此,我制作了一个电子邮件表单,并使用AJAX链接到一个外部PHP文件,该文件使用phpMail发送电子邮件。因此,我在PHP的顶部有以下代码: if(count($_POST) > 0){ $message= 'Full Name: '.$_POST['name'].'<br /> Email: '.$_POST['email'].'<br /> Message: '.$_POST['textarea'].'<br /&g

因此,我制作了一个电子邮件表单,并使用AJAX链接到一个外部PHP文件,该文件使用phpMail发送电子邮件。因此,我在PHP的顶部有以下代码:

if(count($_POST) > 0){

    $message=
    'Full Name: '.$_POST['name'].'<br />
    Email:  '.$_POST['email'].'<br />
    Message: '.$_POST['textarea'].'<br />
    Current Website: '.$_POST['website'].'<br />
    Business Name: '.$_POST['business'].'<br />
    ';
这是HTML标记的形式:

<form name="contact-form" method="post" id="contact-form">

                        <h3> We want to hear from you! Tell us about your business and/or project and what you need and we'll get back to you as soon as possible! </h3>

                            <div class="form-group">

                                <label for="name">Your Name:</label>
                                <input type="text" name="name" class="form-control" placeholder="Your Name" required/>

                            </div>

                            <div class="form-group">

                                <label for="email">Your Email:</label>
                                <input type="email" name="email" class="form-control" placeholder="Your Name" required/>

                            </div>
                            <div class="form-group">

                                <label for="web">Current Website (if available):</label>
                                <input type="text" name="website" class="form-control" placeholder="Current Website (if available)"/>

                            </div>

                            <div class="form-group">

                                <label for="web">Business Name (if available):</label>
                                <input type="text" name="business" class="form-control" placeholder="Business Name (if available)"/>

                            </div>

                            <div class="form-group">

                                <label for="comment">Message:</label>
                                <textarea id="textarea" rows="5" class="form-control" name="textarea" placeholder="Message"></textarea>

                            </div>

                            <div class="row" align="center" id="button-row2">

                                <input type="button" value="Submit" onClick="ajax.send()" class="btn">

                            </div>

                    </form>

我们想听你的!告诉我们您的业务和/或项目以及您需要什么,我们会尽快回复您!
你的名字:
您的电子邮件:
当前网站(如有):
企业名称(如有):
信息:

知道为什么会发生这种情况吗?

jQuery在您的实时环境中无法正确访问。所以,

var name = $("input[name=name]").val();
var email = $("input[name=email]").val();
var textarea = $("textarea").val();
var business = $("input[name=business]").val();
var website = $("input[name=website]").val();

所有
都未定义

jQuery在您的实时环境中无法正确访问。所以,

var name = $("input[name=name]").val();
var email = $("input[name=email]").val();
var textarea = $("textarea").val();
var business = $("input[name=business]").val();
var website = $("input[name=website]").val();

是否所有
都未定义

您是否可以确认在这两种情况下(测试和实时),您的AJAX代码正在运行,而不是表单开始作为html表单提交到它所在页面的URL?此外,您是否可以确认变量
名称、电子邮件、文本区域、,etc.
在发送到实时环境之前已填充?@fvgs我确信AJAX正在运行,因为在$.post之后,如果data==true,它会像else一样返回。我猜,这意味着它首先经历了。我为每个变量输入了值,但如何确认呢?它应该是ajax.isSubmitting(有两个ts)?通过
var name=$(“input[name=name]”)提取值后。val(),等等。打印出其中一个变量的值,然后查看它是否为空。您还可以检查jQuery是否可以在您的实时环境中访问。您是否可以确认在这两种情况下(测试和实时),您的AJAX代码正在运行,而不是表单开始作为html表单提交到它所在的同一页面的URL?此外,您是否可以确认变量
名称、电子邮件、文本区域,etc.
在发送到实时环境之前已填充?@fvgs我确信AJAX正在运行,因为在$.post之后,如果data==true,它会像else一样返回。我猜,这意味着它首先经历了。我为每个变量输入了值,但如何确认呢?它应该是ajax.isSubmitting(有两个ts)?通过
var name=$(“input[name=name]”)提取值后。val(),等等。打印出其中一个变量的值,然后查看它是否为空。您还可以检查jQuery在您的实时环境中是否可以访问,那么我该如何解决这个问题呢?这只是一个理论;您需要确认这是否是我上面的一条评论中所描述的情况,因此在PHP中,在
if(count($\u POST)>0)之前,
我回显了所有值,并在控制台中看到了它们。而且,在本地,它工作得很好。但在live上,它似乎一旦接近
if(count($\u POST)>0)
它就忽略了itA下的所有内容。好的诊断步骤可能是确定PHP脚本中的
$\u POST
中是否存在任何值,当它作为AJAX调用的结果在live环境中运行时。目前,你对那个案例的描述对meSo来说还不清楚我该如何解决这个问题?这只是一个理论;您需要确认这是否是我上面的一条评论中所描述的情况,因此在PHP中,在
if(count($\u POST)>0)之前,
我回显了所有值,并在控制台中看到了它们。而且,在本地,它工作得很好。但在live上,它似乎一旦接近
if(count($\u POST)>0)
它就忽略了itA下的所有内容。好的诊断步骤可能是确定PHP脚本中的
$\u POST
中是否存在任何值,当它作为AJAX调用的结果在live环境中运行时。目前,我还不清楚你对那个案子的描述