Javascript 单击内部按钮时,模式弹出窗口未保存到数据库
我是jquery和ajax新手,所以请耐心等待。 我有这个链接:Javascript 单击内部按钮时,模式弹出窗口未保存到数据库,javascript,php,jquery,ajax,popup,Javascript,Php,Jquery,Ajax,Popup,我是jquery和ajax新手,所以请耐心等待。 我有这个链接: <a href="#message" style="text-decoration:none" class="common2 simple3" >Message</a> 但当我试图通过ajax将其传递到php页面时,它不会通过。有什么不对劲吗 这是message.php $message = $_POST['message']; $result = false; $sql="INS
<a href="#message" style="text-decoration:none" class="common2 simple3" >Message</a>
但当我试图通过ajax将其传递到php页面时,它不会通过。有什么不对劲吗
这是message.php
$message = $_POST['message'];
$result = false;
$sql="INSERT INTO MESSAGE_LOG (sender,recepient, message)
VALUES($viewer,$viewed,$message)";
if (!mysqli_query($connection,$sql))
{
die('Error: ' . mysqli_error($connection));
}
您需要从
$\u GET
读取值:
$message = $_GET['message'];
或者使用具有数据属性的post方法:
$(document).ready(function()
{
$("#send").click(function(e)
{
e.preventDefault();
var msgContent = $("#msgContent").val();
alert(msgContent);
$.ajax({
url: 'subscribe.php',
type: 'POST',
data: {message: msgContent},
//dataType: 'json', from your php I don't that that you are looking for json response...
context: this,
success: function(result)
{
//if (result == true)
$(this).html('Send');
}
});
})
})
你的JS应该是这样的:
$(document).ready(function() {
$("#send").click(function(e) {
e.preventDefault();
var msgContent = $("#msgContent").val();
$.ajax({
url: 'message.php',
type: 'POST',
dataType: 'json',
data: {message: msgContent},
context: this,
success: function(result) {
alert('Message has been sent');
}
});
});
});
你的PHP是这样的:
$message = $_POST['message'];
$result = false;
$sql="INSERT INTO MESSAGE_LOG (sender,recepient, message)
VALUES($viewer,$viewed,'$message')";
if (!mysqli_query($connection,$sql)) {
die('Error: ' . mysqli_error($connection));
}
请详细说明。。你说它不会通过是什么意思?我不能让msgContent通过message.php将代码发布到message.php中吗?还有,你说的“通过ajax传递php页面”是什么意思?你想让PHP用你显示的HTML来响应吗?我需要将msgContent传递到一个PHP页面,这样我就可以在数据库中保存数据,而无需重定向页面i changed$_POST['message'];发送到$_POST['message'];但一切都没有改变。我还尝试了post方法,结果是相同的,但有没有一种方法可以显示一个弹出窗口,说“Message been sent”,而不是将“Send”按钮更改为“sent”?我尝试在成功中添加了这一点:function(result){if(result==true)alert('Message been');}但它没有显示,或者我需要在其他地方插入它?嗨!。。我正在更新已发送警报的消息。有没有办法在另一个弹出窗口中显示此消息?我已插入已发送的消息。并在ajaxsuccess中调用:$('#success').open();但我同时显示我的消息弹出窗口。@Nhiz然后只注释掉这行:alert('message has sent');消息已发送弹出窗口与文本区域的弹出窗口同时出现。因此,即使在我在文本区域中写入之前,另一个弹出窗口也会出现
$(document).ready(function() {
$("#send").click(function(e) {
e.preventDefault();
var msgContent = $("#msgContent").val();
$.ajax({
url: 'message.php',
type: 'POST',
dataType: 'json',
data: {message: msgContent},
context: this,
success: function(result) {
alert('Message has been sent');
}
});
});
});
$message = $_POST['message'];
$result = false;
$sql="INSERT INTO MESSAGE_LOG (sender,recepient, message)
VALUES($viewer,$viewed,'$message')";
if (!mysqli_query($connection,$sql)) {
die('Error: ' . mysqli_error($connection));
}