【发布时间】:2017-06-23 16:13:12
【问题描述】:
我知道有很多像this one 这样的问题,但我仍然无法让它正常工作。即使是对我应该做些什么来纠正这个问题的评论也绰绰有余,因为我了解 80% 的 jQuery..
<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').submit(function(){
$.ajax({
type: 'POST',
url: meddelanded.php,
data: {
user: username, // <-- is this what i should write in data?!
message: message // <-- and this?!
},
success: function(msg){
alert('Message Sent');
}
});
return false;
});
所以,我的问题是我应该在data: 中写什么,我不知道我应该在那里输入什么!任何人都可以帮助我,还是其他原因使它不起作用?
【问题讨论】:
-
尝试将变量 $meddelanden 和 $username 直接放入 VALUES ('$meddelanden','$username'),省略 bind_param()
-
@BrianSmith no 那么它可以进行 mysql 注入
-
您需要更改您的按钮,使其在点击后不提交:
<input class = "lg" type="button" name="submit" value="Send">然后将您的 ajax 连接到它的点击事件。 -
我该怎么做呢? @freedomn-m
-
在函数顶部使用
e.preventDefault();。