【发布时间】:2014-09-07 15:42:34
【问题描述】:
我正在尝试使用每秒自动刷新的 AJAX 在文本区域中显示 PHP 回显。到目前为止,我所做的一切都不想工作,而且我在 textarea 中一无所获。
这是我的代码:
<?php
$stmt = mysqli_prepare($db_conx,"SELECT message FROM chat WHERE asker = ?");
$stmt->bind_param('s', $asker);
$stmt->execute();
$stmt->bind_result($message);
/* fetch values */
while ($stmt->fetch()) {
$currvalue[] = array('message'=>$message);
}
echo $message;
echo '333333333';
?>
HTML 代码:
<textarea id="chattercontent" style="width:90%; height:150px; resize:none;" readonly></textarea>
AJAX/jQuery 代码:
<script type="text/javascript">
$(document).ready(function () {
function load() {
$.ajax({ //create an ajax request to load_page.php
type: "GET",
url: "file.php",
dataType: "text", //expect html to be returned
success: function (response) {
$("#chattercontent").html(response);
setTimeout(load, 1000)
}
});
}
load();
});
</script>
上面的代码会发生什么,我在我的文本区域中得到了echo '333333333';,就像333333333 这样很好。但我的文本区域中没有 echo $message;。
我检查了 MySQL 表和列是否不为空,我可以确认它不为空并且其中包含一些值。
我也直接从浏览器查看了file.php 页面,它正确地执行了echo $user_message;。但它不会在 AJAX 调用和我的 textarea 中得到回应。
有人可以就这个问题提出建议吗?
【问题讨论】:
-
您是否将响应记录到控制台,如果您收到的是
333333而不是消息,那可能是因为$message是空的 -
@adeneo,$message 不为空,因为当我直接从浏览器查看页面时,我得到了正确回显的 $message。所以我知道它不是空的。
-
在您的代码中是否分配了 $message?
-
你能告诉我们
$message包含什么吗?当您直接查看.php文件时,您会看到什么?您还可以检查页面的html和textarea标签吗? (当你加载它时) -
$message 包含已保存在 mysql 数据库中的用户输入。当我直接查看 .php 页面时,我看到了 mysql 数据库中存储的任何内容。我可以看到 html 页面和 textarea 但其中没有任何内容表明 $message 曾经/在其中。我没有任何错误。但同时,我的文本区域中没有 $message 回显。如果我删除 AJAX 并使用表单操作,我会在我的页面上正确地得到 $message 回显!这是我遇到过的最奇怪的事情!