【发布时间】:2021-08-12 08:19:37
【问题描述】:
非常感谢您的帮助。我有以下文件。 jquery 事件侦听器中的两个警报都有效,但不是 if (isset) 块中的一个,因为它正在发布给自己。非常感谢!我已经缩写了代码,一切都在其正确的标签内。
<?php session_start();
include("config.php");
$myID = $_POST['chatid'];
$_SESSION['chateeID'] = $myID;
if(isset($_POST['inputmessage'])) {
echo '<script type="text/javascript">alert("got in here");</script>';
$sMessage = mysqli_real_escape_string($_POST['inputmessage']);
if ($sMessage != '') {
$sql = "INSERT INTO chatmessages (user_one_id, user_two_id, mymessage, action_user_id)
VALUES ('$user1', '$user2', '$sMessage', '$action_user_id')";
// Perform a query, check for error
if (!mysqli_query($con,$sql)){
echo '<script type="text/javascript">alert("'.mysqli_error($con).'");</script>';
}
}
}
<script>
$('#ChatInputBox').keydown(function (e) {
var keyCode = e.keyCode || e.which;
var txt = $("#ChatInputBox").val();
if (keyCode == 13 && txt!="") {
alert("txt is: "+txt);
$.post("inserttochat.php", { inputmessage: txt }, function(result){
alert("got to callback!");
});
}
});
</script>
我在另一个页面上以完全相同的方式执行此操作,但在这里找不到差异。
【问题讨论】:
-
您是否尝试过检查您是否成功接收到发布的数据?在您的 inserttochat.php 中尝试
echo $_POST['inputmessage'];以查看它是否已定义 -
您问题中的 PHP 代码是否在
inserttochat.php脚本中?如果是这样,您是否希望将<script>块作为 AJAX 请求的一部分进行评估? -
顺便说一句,您不使用
<script type="text/javascript">alert...输出值,而是将其作为 json、文本或 xml 传回。要使其执行脚本,您需要 .html() 而不是另一个警报。