当我通过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中),我该如何改进?
由于
答案 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脚本的正确方法