Php 在不重新加载页面的情况下提交表单

Php 在不重新加载页面的情况下提交表单,php,jquery,html,forms,Php,Jquery,Html,Forms,我知道有很多这样的问题,但我还是不能让它正常工作。即使是我应该做些什么来纠正这一点的评论也已经足够了,因为我对jQuery的理解率高达80% <form action="meddelanden.php" id="fromen2" method="post"> <input type="text" name="message" id="type" autocomplete="off" placeholder="type your chat message">

我知道有很多这样的问题,但我还是不能让它正常工作。即使是我应该做些什么来纠正这一点的评论也已经足够了,因为我对jQuery的理解率高达80%

<form action="meddelanden.php" id="fromen2" method="post">
    <input type="text" name="message" id="type" autocomplete="off" placeholder="type your chat message">
    <input class="lg" type="submit" name="submit" value="Send">
</form>

Meddelanden.php

<?php
    session_start();
    $meddelanden = $_POST['message'];
    $username = $_SESSION['user'];
    include ("connect.php");
    $sql = $con->prepare('INSERT INTO messages (message,username) VALUES (?,?)');
    $sql->bind_param("ss",$meddelanden,$username);
    $sql->execute(); 
    $sql->close();
    $con->close(); 
?>

脚本(把我的头脑搞得一团糟)

$('#fromen2')。提交(函数(){
$.ajax({
键入:“POST”,
url:meddelanded.php,
数据:{

user:username,//只需使用jQuery
serialize序列化表单数据即可:

$('#fromen2').submit(function(){

    $.ajax({
        type: 'POST',
        url: meddelanded.php,
        data: $(this).serialize()
        success: function(msg){

           alert('Message Sent');
        }
    });

    return false;
})

尝试类似的方法。不过,您可能需要稍微处理一下。当您按下提交按钮时,我首先阻止表单自动提交,然后我使用用户在消息中输入的值,并在
数据中输入
messageInput
的值。希望这有帮助

$('#fromen2').submit(function(e){
 e.preventDefault();
 var userMessage = $('#messageInput').val();

 $.ajax({
  type: 'POST',
  url: meddelanded.php,
  data: { 
    //You dont need to send user data becaues you are setting the user variable with $_SESSION in php file
    message: userMessage     
  },
   success: function(msg){


   alert('Message Sent');

      }
   });

return false;
});
HTML

HTML



尝试将变量$meddelanden和$username直接放入值(“$meddelanden”,“$username”)中,省去bind_param()@Britransmish no然后可以进行mysql注入您需要更改您的按钮,以便它不会在单击后提交:
,然后将您的ajax连接到它的单击事件。我该怎么做?@freedomn muse
e.preventDefault()
位于函数顶部。这对我来说不起作用。表单在提交后仍将指向meddelanded.php。请确保在表单元素已在DOM中时添加javascript代码。您可以添加
console.log(此)
在submit callback中,检查在单击submit按钮时是否执行了此代码。例如,如果您将此js代码放在头部,则它将不起作用Nope not work,即使我更正了url输入错误,消息也不会被提交
$('#fromen2').submit(function(e){
 e.preventDefault();
 var userMessage = $('#messageInput').val();

 $.ajax({
  type: 'POST',
  url: meddelanded.php,
  data: { 
    //You dont need to send user data becaues you are setting the user variable with $_SESSION in php file
    message: userMessage     
  },
   success: function(msg){


   alert('Message Sent');

      }
   });

return false;
});
<form id="fromen2" method="post">
        <input type="text" id = "messageInput" autocomplete="off" placeholder="type your chat message">
        <input class = "lg" type="submit" name="submit" value="Send">
    </form>
$('#submitButton').on('click', function(e){
e.preventDefault();
var userMessage = $('#messageInput').val();

$.ajax({
 type: 'POST',
 url: meddelanded.php,
 data: { 
   //You dont need to send user data becaues you are setting the user    variable with $_SESSION in php file
   message: userMessage     
 },
  success: function(msg){


  alert('Message Sent');

     }
  });
});
<form id="fromen2">
    <input type="text" id = "messageInput" autocomplete="off" placeholder="type your chat message">
    <input class = "lg" id="submitButton" name="submit" value="Send">
</form>