如何通过Ajax将表单发送到我的PHP页面

时间:2019-04-26 02:42:14

标签: javascript php jquery ajax

我正在尝试添加评论部分。我有一个ajax调用,它将一条消息插入到我的数据库中。我在页面上显示了来自表的所有消息的php。当我单击评论部分时,没有任何反应。

我最初尝试在javascript中对一些变量进行硬编码,只是为了查看我的ajax是否至少尝试将其插入数据库中,但是确实找到了答案 send form to php file using ajax 我尝试了这个,但对我不起作用。

我确保点击ID被篡改,并且hp文件已更改为正确的URL,但是当我单击“提交”时,没有任何反应。

在找到答案之前,我最初是有这个想法的,但我认为应该是可行的。此处:send form to php file using ajax


var message='hey how are you';
var task=37;
var Domain='fun';
var Task_Number=37;


function messfunction() {
     $.ajax({  
            url:'mess.php',  
            type:'POST',  
            data:{task:task,Domain:Domain,message:message}, 
            success:function(data){  
               window.location.reload(true)
                  }
      });
}

这就是我现在所拥有的。

$(document).ready(function(){

 $('#Butt').click(function(e){
   e.preventDefault();
   form = $("#myform").serialize();

   $.ajax({
     type: "POST",
     url: "mess.php",
     data: form,
     success: function(data){ 
      window.location.reload(true)
     }});

   return false;  
  });

});

我的表单我正在使用php输出表单,这就是为什么您将php变量视为值的原因。

<form   id= "myform" name ="myform"  method= "POST" action="">
  <input type= "hidden" name="User" value="'.$email.'">
  <input type  ="hidden" name ="date" value="'.date("Y-m-d H:i:s").'">
  <input type="hidden" name="task" value="'.$Tasknumber_modal.'">
  <input type="hidden" name="Domain" value="'.$domain_modal.'">
  <textarea name="message"></textarea>
  <button  id="Butt" >Comment</button>
  </form>';

这是我的mess.php页面。




                    require('server.php');

                     session_start();

                        $User=$_SESSION['email'];
                        $message=$_POST['message'];
                        $domain1=$_POST['Domain'];
                        $task=$_POST['task'];


        $sqli= "Insert into Universe.Message (Message,Users,TaskNumber,urlDomain) VALUES(?,?,?,?)";
        $stmt =mysqli_prepare($link,$sqli);
        mysqli_stmt_bind_param($stmt,"ssis",$message,$User,$task,$domain );
        mysqli_stmt_execute($stmt);
        mysqli_stmt_close($stmt);

1 个答案:

答案 0 :(得分:0)

在我看来,

strcspn()更适合.serialize()请求,因为它基本上将表单数据转换为字符串布局(GET)。

您的第一个示例似乎表明您的PHP正在解码formData,因此请在第二个示例中尝试以下操作:

?q=Search+Query&id=12