【问题标题】:Display PHP echo in a textarea using AJAX/jQuery?使用 AJAX/jQuery 在文本区域中显示 PHP 回显?
【发布时间】: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 文件时,您会看到什么?您还可以检查页面的htmltextarea 标签吗? (当你加载它时)
  • $message 包含已保存在 mysql 数据库中的用户输入。当我直接查看 .php 页面时,我看到了 mysql 数据库中存储的任何内容。我可以看到 html 页面和 textarea 但其中没有任何内容表明 $message 曾经/在其中。我没有任何错误。但同时,我的文本区域中没有 $message 回显。如果我删除 AJAX 并使用表单操作,我会在我的页面上正确地得到 $message 回显!这是我遇到过的最奇怪的事情!

标签: php jquery mysql ajax


【解决方案1】:

你的 $message 变量没有被赋值

替换你的 echo $message;与

print_r($currvalue);

你会看到你的输出。

换句话说,您的 $message 变量不包含任何内容! (用$message = 'someting'; 分配一些东西)

【讨论】:

  • 是的,我也在想同样的事情!实际消息应该在$currvalue['message']
  • 是的,这是真的,尽管他/她(shell)声称 var 被正确回显,但我看到它没有分配到任何地方!
  • 但他说他直接查看了文件,它确实正确地回显了变量
  • 我不相信除非他向我们展示它是被分配的。我尝试了这段代码,如果不为 var 分配一些东西,它就无法工作!!
  • 当然可以,但是还要考虑一件事:如果没有分配变量,脚本会给出未定义变量的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 2013-03-31
相关资源
最近更新 更多