Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未执行AJAX调用_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 未执行AJAX调用

Javascript 未执行AJAX调用,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我只是带着AJAX调用来到这个角落,并试图学习它。我有一个表单,我正试图通过AJAX调用推送它,但却收到了一个它无法发送的持续错误,我无法用我的头脑去思考它为什么不工作 表格: <form class="form-horizontal" id="contact-form" method="post"> <div class="control-group"> <div class="controls">

我只是带着AJAX调用来到这个角落,并试图学习它。我有一个表单,我正试图通过AJAX调用推送它,但却收到了一个它无法发送的持续错误,我无法用我的头脑去思考它为什么不工作

表格:

<form class="form-horizontal" id="contact-form"  method="post">
      <div class="control-group">
            <div class="controls">
                <input type="text" name="name" id="name" placeholder="Naam" class="form-control input-lg">                                
             </div>
      </div>
      <div class="control-group">
             <div class="controls">
                <input type="text" name="email" id="email" placeholder="Email adres" class="form-control input-lg">
             </div>
      </div>
      <div class="control-group">
             <div class="controls">
                 <textarea name="message" id="message" rows="8" class="form-control input-lg" placeholder="Bericht"></textarea>
             </div>
       </div>
       <div class="form-actions">
              <button type="submit" id="submit" class="btn btn-default btn-lg btn-block">Verstuur Bericht</button>
       </div>
       <div id="succes">
       </div>
</form>
以及sendmail.php

$name = mysqli_real_escape_string($con,$_POST["naam"]);
$from = mysqli_real_escape_string($con,$_POST["email"]);                                    
$message = mysqli_real_escape_string($con,$_POST["bericht"]);

$message = wordwrap($message, 70);  
$to = "example@myemail.nl";
$subject = "Een gebruiker heeft een vraag of opmerking";

$body = "Some messages and colloring, to much to paste cause it's inline-markup";

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: noreply@ajaxfailure.nl";

if ($name == ''){
    echo '<p>U heeft geen naam ingevuld</p>';    
}else if($from == ''){
    echo '<p>U heeft geen emailadres achter gelaten</p>';
}else if($body == ''){
    echo '<p>U heeft geen bericht ingevuld niet ingevuld';
}else {
    if (mail ($to, $subject, $body, $headers)) {
        echo '<p>Uw bericht is verzonden.</p>';
    } else {
        echo '<p>Er is iets mis gegaan bij het verzenden van de data, probeer het opnieuw.</p>';
    }
} 
$name=mysqli\u real\u escape\u字符串($con,$\u POST[“naam”]);
$from=mysqli\u real\u escape\u字符串($con,$\u POST[“email”]);
$message=mysqli\u real\u escape\u字符串($con,$\u POST[“bericht”]);
$message=wordwrap($message,70);
$to=”example@myemail.nl";
$subject=“Een gebruiker heeft Een vraag of opmerking”;
$body=“一些消息和colloring,由于它是内联标记,所以需要粘贴很多”;
$headers=“MIME版本:1.0”。“\r\n”;
$headers.=“内容类型:text/html;字符集=UTF-8”。“\r\n”;
$headers.=”来自:noreply@ajaxfailure.nl";
如果($name=''){
回音“U heeft geen naam ingevuld

”; }else if($from==''){ 回音“U heeft geen emailadres achter gelten

”; }else if($body=''){ echo'U heeft geen bericht ingevuld niet ingevuld'; }否则{ if(邮件($to、$subject、$body、$headers)){ echo’Uw bericht是verzonden.

; }否则{ echo’Er是iets的数据管理系统,可能是opnieuw。

; } }
每次它都从AJAX调用返回错误警报,并且不执行任何操作。我的控制台也没有发现错误,完全空白

我按照“网络”选项卡上的建议检查了控制台,它甚至没有出现在页面上。这部分没有404错误。看来请求被取消了


您的输入名称属性与您的php不匹配:

$name = mysqli_real_escape_string($con,$_POST["name"]); //<-- not 'naam'
$from = mysqli_real_escape_string($con,$_POST["email"]);                                    
$message = mysqli_real_escape_string($con,$_POST["message"]); //<-- not 'bericht'

$name=mysqli\u real\u escape\u字符串($con,$\u POST[“name”])// 您的输入名称属性与php不匹配:

$name = mysqli_real_escape_string($con,$_POST["name"]); //<-- not 'naam'
$from = mysqli_real_escape_string($con,$_POST["email"]);                                    
$message = mysqli_real_escape_string($con,$_POST["message"]); //<-- not 'bericht'
$name=mysqli\u real\u escape\u字符串($con,$\u POST[“name”])// 编辑此

$('#contact-form').bind('submit',function(){
ajax函数未绑定到元素。

编辑此项

$('#contact-form').bind('submit',function(){

ajax函数没有绑定到元素。

除了其他答案之外,我认为您不能在这一行中使用
这个

data : $(this).serialize(),
尝试使用:

data : $('form').serialize(),

除了其他答案外,我认为你不能在这行中使用
这个

data : $(this).serialize(),
尝试使用:

data : $('form').serialize(),

您的AJAX请求将被取消,因为在AJAX启动后,表单立即执行其标准表单提交,浏览器将重新加载页面。在提交事件中,您需要返回false或防止默认值:

$('form').bind('submit',function(){
    ...
    ...
    return false;
});
或捕获事件并防止默认:

$('form').bind('submit',function(e){
    e.preventDefault();
    ...
    ...
});

上述任何一项都将阻止表单提交,并允许您完成AJAX请求。

您的AJAX请求将被取消,因为在AJAX启动后,您的表单立即进行标准表单提交,浏览器将重新加载页面。在提交事件中,您需要返回false或防止默认值:

$('form').bind('submit',function(){
    ...
    ...
    return false;
});
或捕获事件并防止默认:

$('form').bind('submit',function(e){
    e.preventDefault();
    ...
    ...
});


上述任何一项都将阻止表单提交,并允许您完成AJAX请求。

始终使用开发人员工具调试代码。通过这种方式,您可以准确地看到它是如何发送的以及发送到哪里的。请使用Chrome开发工具。检查Chrome开发工具中的网络选项卡。请在做出我建议的更改后查看javascript控制台-它会给您错误信息。请求被取消,因为php错误可能与刷新有关(没有禁用按钮的默认状态),并且必须通过获取id而不是元素来重新绑定表单。我现在得到了正确的消息,只是还没有收到邮件,但这可能是在我的PHP中调试的问题。通过这种方式,您可以准确地看到它是如何发送的以及发送到哪里的。请使用Chrome开发工具。检查Chrome开发工具中的网络选项卡。请在做出我建议的更改后查看javascript控制台-它会给您错误信息。请求被取消,因为php错误可能与刷新有关(没有禁用按钮的默认状态),并且必须通过获取id而不是元素来重新绑定表单。我现在得到了正确的消息,只是还没有收到邮件,但这可能是在我的PHP中调试的问题。谢谢你指出这些。它还没有解决这个问题,但离它更近了一步。当你把荷兰语和英语混合在一起时,你会得到什么together@Dorvalla在错误函数中,将警报替换为
console.log(error抛出)
并在js控制台中检查实际错误,然后使用结果编辑您的问题感谢您指出这些错误。它还没有解决这个问题,但离它更近了一步。当你把荷兰语和英语混合在一起时,你会得到什么together@Dorvalla在错误函数中,将警报替换为
console.log(error抛出)
并在js控制台中检查实际错误,然后用结果编辑您的问题,实际上我通过表单禁用了按钮以阻止操作。我刚刚补充说,当你发布它是的,我实际上禁用了通过表单的按钮,以防止一个行动。我刚刚补充说,当你发布它时,我认为这是最后一次推动我与其他awnsers一起走上正确的方向。我不能接受所有答案,但至少我收到了发送消息,并且它连接到sendmail.php。我现在只需要调试一下它,就可以让它工作了。我想这是最后一次把我和其他Awnser一起推向正确的方向。我不能接受所有答案,但至少我收到了发送消息,并且它连接到sendmail.php。我现在只需要调试一下它就可以了