PHP 文件未从 JQuery 获取 $POST 参数
PHP file not picking up $POST parameter from JQuery
非常感谢您的帮助。我有以下文件。 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>
我在另一个页面上以完全相同的方式执行此操作,但在这里找不到差异。
在我的开发系统上设置您的代码后,我发现您的 PHP 代码正在发送的一小段脚本被正确发送,并且被正确接收但没有被 jQuery AJAX代码。
如果您希望该提醒显示在您的页面中,您需要将其放置在 HTML 元素中
<div id="response"></div>
然后
$.post("inserttochat.php", { inputmessage: txt }, function(result){
alert("got to callback!");
$("response").html(result);
});
更好的方法是将某种状态回显为 JSON 对象,然后将其解压缩到 Javascript.
中的 alert
echo json_encode((object)['status'=>'ok', 'msg'=>'All good']);
然后
$.post("inserttochat.php", { inputmessage: txt }, function(result){
alert("Response: "+result.status+', '+result.msg);
},'json');
注意添加到 POST
请求的 json
数据类型*.
- 此处更好的方法是将所有响应标准化为 JSON,然后在 PHP 文件的顶部添加
header("Content-type: application/json");
。这将告诉 jQuery 数据是什么,而不是你必须在浏览器中强制问题。
非常感谢您的帮助。我有以下文件。 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>
我在另一个页面上以完全相同的方式执行此操作,但在这里找不到差异。
在我的开发系统上设置您的代码后,我发现您的 PHP 代码正在发送的一小段脚本被正确发送,并且被正确接收但没有被 jQuery AJAX代码。
如果您希望该提醒显示在您的页面中,您需要将其放置在 HTML 元素中
<div id="response"></div>
然后
$.post("inserttochat.php", { inputmessage: txt }, function(result){
alert("got to callback!");
$("response").html(result);
});
更好的方法是将某种状态回显为 JSON 对象,然后将其解压缩到 Javascript.
中的alert
echo json_encode((object)['status'=>'ok', 'msg'=>'All good']);
然后
$.post("inserttochat.php", { inputmessage: txt }, function(result){
alert("Response: "+result.status+', '+result.msg);
},'json');
注意添加到 POST
请求的 json
数据类型*.
- 此处更好的方法是将所有响应标准化为 JSON,然后在 PHP 文件的顶部添加
header("Content-type: application/json");
。这将告诉 jQuery 数据是什么,而不是你必须在浏览器中强制问题。