2017-02-19 104 views
0

我写了一个AJAX代码并链接了php文件,但代码在最后不接受return false;函数。它将我带到行动档案。我的Ajax代码ajax代码,jquery返回false不工作。尝试其他答案

$("#submit").click(function() { 

    var data = $("#form :input").serializeArray(); 

    $.post($("#form").attr("action"), data, function(info) { $("#result").html(info);}); 
}); 

$("#form").submit(function() { 

    return false; 
}); 

我的index.php代码

<?php 

include('new.php'); 


?> 


<!DOCTYPE html> 
<html> 
<head> 
    <title>Ajax practice</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    <script type="text/javascript" src="ajax.js"></script> 
</head> 
<body> 
    <form action="new.php" method="post" id="form"> 
     <label>Name</label><br> 
     <input type="text" name="name"/><br> 
     <label>Email</label><br> 
     <input type="Email" name="email"/><br> 
     <button type="submit" name="submit" id="submit">submit to database</button> 
    </form> 
    <span id="result"></span> 
</body> 
</html> 

我的PHP文件

<?php 

$con = mysqli_connect("localhost","root","","ajax") or die ("couldnt connect to database."); 


if (isset($_POST['submit'])) { 


    global $con; 

    $title = $_POST['name']; 
    $email = $_POST['email']; 


    $insert_user = "INSERT INTO ajax (title, email) VALUES ('$title', '$email')"; 
    $run_user = mysqli_query($con,$insert_user); 


    if ($run_user) { 
     echo "Success"; 
    } else { 
     echo "Failed"; 
    } 
} 


?> 
+0

里面是什么new.php? – mplungjan

回答

1
  • NEVE [R名的提交按钮“提交” - 它取代/块form.submit处理
    变化
    ​​

    <button type="submit">submit to database</button>

  • 如果JS与处理程序是在头部或他们访问对象之前,你需要用的处理器在一个onload - 在这里我用$(function() {....});

  • 典型的方式是使用提交事件,而不是点击事件 - 这也节约了处理:

测试:http://plungjan.name/SO/testajax/testajax.html

$(function() { // when page loads 
    $("#form").on("submit",function(e) { 
    e.preventDefault(); // cancel submit 
    $.post($(this).attr("action"), $(this).serialize(), function(info) {  
     $("#result").html(info); 
    }); 
    }); 
}); 
+0

我试过了。它仍然把我带到其他的PHP文件。 – Himakar

+0

按F12并查看尝试f12的错误 – mplungjan

+0

。它显示没有错误。 – Himakar

0

你必须防止在代码第一部分是在点击提交的默认操作功能

0

我觉得你

#sumit is id for <input type="submit"> 

因此,当你做

$('#submit').click(function() {}); 

没有的preventDefault做

#('#form').submit(function() { 
    Return false; 
} //think this for your form 

你违反你的代码。你告诉它做与不做,所以它混淆

我劝你

$('#form').on("submit", function() { 
    $.ajax({//ajax code}); 

     Return false; 
    )}; 

尝试此代码

$('#submit').click(function() { 
    var data = $('#form').serialize(); 

    $.ajax({ 
    type: "POST", 
    url: "ajaxsubmit.php", 
    data: data, 
    cache: false, 
    success: function(result){ 
     alert(result); 
    } 
    )}; 
return false; 
}); 
+0

我厌倦了这一点。 。 $( “#形式”)上( “提交”,函数(E){ VAR数据= $( “#形式:输入”)serializeArray(); \t $ .POST($(“#。 (“#result”).html(info); }); 返回false; });}}; attr(“action”),data,function(info) 现在仍在工作。 – Himakar

+0

它仍然带我到另一个PHP页面。 – Himakar

+0

你的脚本是否在外部文件中?希望你喜欢正确的jQuery cdn或文件,并且你链接正确。 –