Ajax.serialize()请求不工作

时间:2017-09-06 10:51:42

标签: php jquery ajax

我正在尝试将form值发送到php页面,以便根据我的form值对我的服务器执行SQL请求。这是带有form和ajax脚本的原始php:

    
    <script type='text/javascript'      src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"> 
    </script>

    <form enctype="multipart/form-data" method="post">
    <input type="datetime-local" name="start" id="start">
    <input type="datetime-local" name="finish" id="finish">
    <input type="checkbox" name="consta" id="consta" value="tru"> Remove const
    <input type="submit" name="apply" id="apply">
    </form>
    <script>
      $('#apply').click(function(){
      var data= $('form').serialize();
      $.post('gensetapply.php', data);

     });
  
     </script>
在gensetapply.php中,我试图通过$ _POST获取变量:

 <?php
 $con=$_POST['consta'];
 $str=$_POST['start'];
 $fin=$_POST['finish'];
 echo $con.", ".$str.", ".$fin;     
 ?>

所以,我确信我的ajax请求无效。 我对这些事情不熟悉并在上面编写代码以寻找类似的例子,所以请欢迎指出我的错误。可能有一个错字导致我在这里再次打字,而不是从源代码复制粘贴。

修改: 它工作正常,当我刷新页面时我无法看到它,但是通过Chrome中的devtools(网络&gt;响应)我希望它能帮助像我这样的其他傻瓜;)

2 个答案:

答案 0 :(得分:1)

此处&#39; 应用&#39;按钮类型为submit。因此,您的表单会立即提交。当您通过ajax处理表单提交时,解决方案是您需要停止提交表单。您可以在点击事件中修复returning false,如下所示

<script>
   $('#apply').click(function(){
      var data= $('form').serialize();
      $.post('gensetapply.php', data);
      return false;
   });
</script>

答案 1 :(得分:1)

1st:您使用post方法将数据发布到服务器,因此您需要阻止<script> $('#apply').submit(function(e){ e.preventDefault(); var data= $('form').serialize(); $.post('gensetapply.php', data); }); </script>

type="submit"

第二次或简单地将type="button"更改为holder.modelName.clearFocus(); holder.modelName.setEnabled(false); holder.modelName.setClickable(false); //registrationNumber holder.registrationNumber.clearFocus(); registrationNumber.modelName.setEnabled(false); registrationNumber.modelName.setClickable(false);