想想我的ajax有什么问题吗?

时间:2016-01-18 19:28:13

标签: javascript php jquery html ajax

当我通过http POST请求发送表单值时,我想要做的是返回“addTemplate.php”的echo值。但是,当我发送请求时,绝对没有任何反应。

我该怎么办?

这是我的JS

$(document).ready(function() {
    $("#sendTemplate").on("submit", function(event) {
        var template = $("#template").val();
        event.preventDefault();
        $.ajax({method: "POST", url: "addTemplate.php", data: template, success: function(result) {
            alert(result);
        });
    });
});

这是我的HTML

<!DOCTYPE html>
<html>
    <head>
        <title>Admin</title>
        <link type="text/css" rel="stylesheet" href="stylesheet.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
        <script src="adminscript.js"></script>
    </head>
    <body>
        <h1>Admin/Developer page</h1>
        <form id="sendTemplate">
            <p>Enter a new template for the server: (Enter #word to enter a placeholder for words)</p><input type="text" name="template" id="template">
            <input type="submit" name="submit">
        </form>
        <div id='success'></div>
        <br><br><br><br>
        <form action="turing.html">
            <button type="submit">Home</button>
        </form>
    </body>
</html>

这是我的php

$template = $_POST["template"]; 
if(strlen($template) <= 100 && strpos($template, "#word")) {
    file_put_contents("templates.txt", "\r\n" . $template, FILE_APPEND);
    header("Location: http://community.dur.ac.uk/h.j.g.baum/admin.html");
    echo "True";
}
else {
    echo "False";
}

我的代码有什么问题(最有可能在JavaScript中),我该如何改进?

由于

4 个答案:

答案 0 :(得分:1)

替换ajax数据:

data: template,

使用:

data: "template="+template,

<强>问题:

您正在使用 $ _ POST [&#39;模板&#39;] 获取值,并且未在ajax数据中定义。

答案 1 :(得分:0)

我认为你错过了Ajax成功函数

的结束
$(document).ready(function() {
    $("#sendTemplate").on("submit", function(event) {
        var template = $("#template").val();
        event.preventDefault();
        $.ajax({method: "POST", url: "addTemplate.php", data: template, success: function(result) {
            alert(result);
        }});
    });
});

答案 2 :(得分:0)

id执行此操作:

 $(document).ready(function () {
            $("#sendTemplate").on("submit", function () {
                $.ajax({
                    method: "POST",
                    url: "addTemplate.php",
                    data: $(this).serialize(),
                    success: function (result) {
                        alert(result);
                    });
                return false;
            });
        });

答案 3 :(得分:0)

只需将你的js改为

$(document).ready(function() {
$("#sendTemplate").on("submit", function(event) {
    var template = $("#sendTemplate").serialize();

    $.ajax({method: "POST", url: "test.php", data: template, success: function(result) {
        alert(result);
    }});
    event.preventDefault();
});

<form id="sendTemplate">

<form id="sendTemplate" method="POST">

这是获取表单数据并将其传递给php脚本的正确方法