ajax代码,jquery返回false不起作用。尝试了其他答案

时间:2017-02-19 08:53:29

标签: php jquery ajax

我写了一个AJAX代码并链接了php文件,但代码最后没有接受return false;函数。它把我带到了行动档案。我的ajax代码

$("#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";
    }
}


?>

3 个答案:

答案 0 :(得分:1)

  • 永远不要将提交按钮命名为“提交” - 它会替换/阻止form.submit处理程序
    更改
    <button type="submit" name="submit" id="submit">submit to database</button>

    <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);
    });
  });
});

答案 1 :(得分:0)

您必须在Click函数的第一部分代码中阻止提交的默认操作

答案 2 :(得分: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;
});