如何在按钮点击时使用Ajax异步执行PHP脚本?

时间:2018-03-31 10:07:17

标签: php jquery ajax

一个简单的问题,我试图解决了十几个小时,但仍然卡住了。我是PHP / Javascript的新手,所以它看起来有点愚蠢,但我不能自己做。对不起我的英语,它不是我的母语。

我有一个本地Web服务器,MySQL数据库和一个名为index.php的表单,它在服务器运行时显示在我的Chrome选项卡中。表单上有一个按钮,它应该异步地在数据库中插入一些信息,即不重新加载页面。谷歌表示,为了做到这一点,我必须使用Ajax。所以我做了以下几点:

1)我在" onClick"上放置了一个Ajax函数。表格上放置按钮的事件;

2)我放置PHP"插入脚本"进入"提交"函数,我放在index.php中,或单独的文件submit.php,它只包含"插入脚本&#34 ;;

3)当我点击按钮时,没有任何反应。没什么。但是,如果我将一些JavaScript运算符放入Ajax函数本身(例如,一个简单的"警报("某些")"),它就可以工作,并且警报会显示在浏览器。

因此,目标是:使用一些Ajax函数来执行PHP脚本,该脚本必须放在某处,并且应该使用Ajax调用,并且无需重新加载页面即可执行。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我只是提示如何做到这一点。因为我不知道你使用这个场景。你可以根据你的要求改变代码

HTML

<form id="form-search" method="post" action="<?php echo 
  $_SERVER['PHP_SELF'];?>">
    <input type="email" name="email" type="email" id="email" required/>

 <input type="submit" value="submit" id="save" class="submit" />

这个ajax方法

//确保你必须在这里加载jquery库

 $(document).on('click','#save',function(e) {
   e.preventDefault();
  var data = $("#form-search").serialize();
  $.ajax({
         data: data,
         type: "post",
         url: "insert.php",
         success: function(data){
              alert("Data Save: " + data);
         }
});
 });

Insert.php

<?php 
    if($_POST['email']!=""))
    {
    //make create connection variable here
    $con = mysqli_connect("localhost","my_user","my_password","my_db");
    $email=$_POST['email'];
    $sql="INSERT INTO tablename (email) VALUES ('$email')";
    $result=mysqli_query($con,$sql);
    if($result){
    echo "You have been successfully inserted.";
    }else{
        echo "not inserted";
    }
   }
    ?>