繁体   English   中英

用php和ajax提交表单

[英]submitting a form with php and ajax

我正在尝试将ajax添加到我的表单中,以便我可以提交表单而不刷新,但是php echo命令不起作用。 如果我取出ajax,效果很好,但在提交时会刷新。 我认为这是试图让他们共同努力的一种情况。 我现在只是在学习ajax,所以我对此并不十分了解。 请看看我要去哪里了

<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
<script type="text/javascript">
    $(function() {
        $('form').bind('submit', function(){
            $.ajax({
                type: "POST",
                url: "ajax.html",
                data: $("form").serialize(),
                success: function() {
                    alert("form was submitted");
                }
            });
            return false;
        });
    });
</script>

<?php
    if(isset($_POST['submit'])){
          $a=$_POST['a'];
          $b=$_POST['b'];

           echo $a.$b;
       }
?>

<html>
 <form method='POST'>
    first name:<input type="text" name="a">
    last name: <input type="text" name="b">
               <input type='submit' name='submit'>
  </form>
</html>

看着它,您正在向“ ajax.html”发送ajax请求,并将php标记包含在“ ajax.html”中,您需要将其重命名为“ ajax.php”以使php标记正常工作。

您的成功功能只会触发包含静态文本的警报。

success: function() {
    alert("form was submitted");
}

如果要查看响应数据,则必须对其进行处理。

success: function(data) {
    alert(data);
}
  1. 将.html更改为.php,否则它不会被php解释器解析。 当然,除非您已配置apache来解析.html文件。
  2. 您是否正在向上述页面提出ajax请求? 您知道您不仅会得到$ a。$ b的回声,对吗? 您还将获得发送回的html部分。 我建议创建另一个脚本并将其发布到该脚本中,而不包含表单标签。
  3. 在ajax请求中,您需要console.log( data )alert( data )

可能值得注意的是,您回显的PHP代码将不可见,因为ajax响应将获取该信息。 这不是如何使用ajax的好例子,因为您不会显示来自ajax调用的结果。 这样的事情会更有意义:

“ ajax.php” PHP文件:

<?php
    if(isset($_POST['submit']))
    {
       $a=$_POST['a'];
       $b=$_POST['b'];
       //Add user name to database here or something
       die($a." ".$b); //Prevents anything after this from being returned
    }
?>

<script type="text/javascript"
 src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
<script type="text/javascript">
    $(function() {
        $('form').bind('submit', function(){
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: $("form").serialize(),
                success: function(data) {
                    alert("Hello " + data);
                }
            });
            return false;
        });
    });
</script>

<html>
 <form method='POST'>
    first name:<input type="text" name="a">
    last name: <input type="text" name="b">
               <input type='submit' name='submit'>
  </form>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM