Javascript JQuery/AJAX&;PHP-使用.load()函数时isset()出错
我的网站上有一个注册页面,我想为其实现PHP和AJAX验证。我将展示我的代码模板(我的代码要大得多),试图解释这个问题 registration.phpJavascript JQuery/AJAX&;PHP-使用.load()函数时isset()出错,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我的网站上有一个注册页面,我想为其实现PHP和AJAX验证。我将展示我的代码模板(我的代码要大得多),试图解释这个问题 registration.php <!DOCUMENT html> <html> <head> <script> $(document).ready(function(){ $("#signupForm").submit(function(event){ event.preventDefault();
<!DOCUMENT html>
<html>
<head>
<script>
$(document).ready(function(){
$("#signupForm").submit(function(event){
event.preventDefault();
var firstNameInput = $("#firstName").val();
var lastNameInput = $("#firstName").val();
$(".messageForm").load("inculdes/signup.script.php", {
firstName: firstNameInput,
lastName: lastNameInput
});
});
});
</script>
</head>
<body>
<form id="signupForm" action="includes/signup.script.php" method="POST">
<input id="firstName" type="text" name="firstName">
<input id="firstName" type="text" name="firstName">
<button id="submit" name="submit" type="submit">Submit</button>
<div class="messageForm"></div>
</form>
</body>
</html>
<?php
if (isset($_POST['submit'])) {
include "dbconn.script.php";
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
//Validators for inputs in PHP with various error messages (1-15) and database INSERT and SELECT functions.
...
} else {
echo "<span>Error 16</span>";
exit();
}
}
?>
<script>
// JQuery validator for inputs and CSS style changers based on errors
...
</script>
$(文档).ready(函数(){
$(“#注册表”).submit(函数(事件){
event.preventDefault();
var firstNameInput=$(“#firstName”).val();
var lastNameInput=$(“#firstName”).val();
$(“.messageForm”).load(“inculdes/signup.script.php”{
firstName:firstName输入,
lastName:lastName输入
});
});
});
提交
signup.script.php
<!DOCUMENT html>
<html>
<head>
<script>
$(document).ready(function(){
$("#signupForm").submit(function(event){
event.preventDefault();
var firstNameInput = $("#firstName").val();
var lastNameInput = $("#firstName").val();
$(".messageForm").load("inculdes/signup.script.php", {
firstName: firstNameInput,
lastName: lastNameInput
});
});
});
</script>
</head>
<body>
<form id="signupForm" action="includes/signup.script.php" method="POST">
<input id="firstName" type="text" name="firstName">
<input id="firstName" type="text" name="firstName">
<button id="submit" name="submit" type="submit">Submit</button>
<div class="messageForm"></div>
</form>
</body>
</html>
<?php
if (isset($_POST['submit'])) {
include "dbconn.script.php";
$firstName = $_POST['firstName'];
$lastName = $_POST['lastName'];
//Validators for inputs in PHP with various error messages (1-15) and database INSERT and SELECT functions.
...
} else {
echo "<span>Error 16</span>";
exit();
}
}
?>
<script>
// JQuery validator for inputs and CSS style changers based on errors
...
</script>
//基于错误的输入和CSS样式更改的JQuery验证程序
...
我的问题是,当我单击Submit按钮时,会收到错误消息“error 16”,所以我的函数跳过了整个PHP脚本,并且不会将数据插入数据库。我得出的结论是,这个问题是因为变量$\u POST['submit']
没有设置,因为当我将第一行代码更改为if(!isset($\u POST[submit'])
时,它就像charm一样工作,但我不想失去阻止用户在浏览器的URL字段中键入signup.script.php
并运行它的能力。如何更正此错误以使其正常工作?我看的教程有这样的代码,在这种情况下,它的工作没有问题
另外,如果需要解决这个问题,我会扩展我的代码,因为我想腾出空间,所以我给出了它的速记版本。根据的jQuery文档(这是一种速记
jQuery.ajax
方法),如果这是$\u GET
而不是$\u POST
,这听起来很像。。。最好将类似的方法与方法结合使用:'POST'
-或者在PHP中检查$\u GET
。您只是不发送“submit”请求。
您可以在此处添加:
$(".messageForm").load("inculdes/signup.script.php", {
firstName: firstNameInput,
lastName: lastNameInput,
submit: 1
});
或者检查isset($\u POST['firstName'])
旁注:如果没有使用load()
传入对象,那么它将是一个GET请求。值得记住
请求方法
如果数据作为对象提供,则使用POST方法;否则,假定为GET
亲爱的仔细检查您的JavaScript代码
event.preventDefault(); // Preventing default form submission
$(".messageForm").load("inculdes/signup.script.php", {
firstName: firstNameInput,
lastName: lastNameInput
});
仅将firstName和lastName发布到signup.script.php
您正在尝试检查isset($\u POST['submit'])
这肯定是错误的,除非你在帖子中通过了“提交”,比如你已经通过的名字和姓氏,如下所示
$(".messageForm").load("inculdes/signup.script.php", {
firstName: firstNameInput,
lastName: lastNameInput,
submit: 'yes'
});
希望有帮助对不起,这些是我现在输入的错误,我的原始代码中没有这些错误。我在这里更正了它们。您只是不随请求发送
submit
。您可以在这里添加它:{firstName:firstNameInput,lastName:lastNameInput,submit:1}
-或者检查isset($\u POST['firstName'])
“对不起,这些是我现在的键入错误”-请不要为此重写代码。真正复制/粘贴您的实际代码。inculdes
这也只是一个打字错误吗?单词拼写为“includes”。^…这就是你需要发布实际代码的原因,因此我们不会坐下来调试不存在的错误。从文档中:如果数据作为对象提供,则使用post方法,缺少的字段submit
可能是罪魁祸首。因此,请在浏览器中检查控制台/网络日志。当你点击提交时,是GET还是POST请求?最好再检查一下OP的代码Jeff,根据我在他们帖子下留下的一些评论。@FunkFortyNiner是的,我知道还有更多的问题,可能只是传输代码时的打字错误。我们不知道。我指出的一个问题似乎是关键的非打字问题。@Jeff那个家伙在开始时做了编辑,我指出了他们的打字错误,之后他们纠正了,我删除了我的评论。很难说我们要把自己扔到哪里,哈哈!谢谢你的帮助!在load()
函数末尾添加submit
,使其像一个魔咒一样工作!如果我早一点问的话,我就不会花30个小时寻找解决方案。这就是解决方案。非常感谢你。