Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery/AJAX&;PHP-使用.load()函数时isset()出错_Javascript_Php_Jquery_Ajax_Forms - Fatal编程技术网

Javascript JQuery/AJAX&;PHP-使用.load()函数时isset()出错

Javascript 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();

我的网站上有一个注册页面,我想为其实现PHP和AJAX验证。我将展示我的代码模板(我的代码要大得多),试图解释这个问题

registration.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>

$(文档).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个小时寻找解决方案。这就是解决方案。非常感谢你。