【问题标题】:How to ask javascript wait for mysql assign value to php variable?如何让javascript等待mysql为php变量赋值?
【发布时间】:2011-09-13 09:50:29
【问题描述】:
<?php
  $query3 = "SELECT message FROM messageslive LIMIT 1";
  $result3 = mysql_query($query3,$connection) or die (mysql_error());
  confirm_query($result3);
  while($userinfo3 = mysql_fetch_array($result3)){
      $msgLive = $userinfo3['message'];
  }
?>

<script type="text/javascript">
  var msg = "<?php echo $msgLive ; ?>";
</script>

我担心的是当数据库表有太多数据要搜索和检索时,PHP变量$msgLive还没有值,所以Javascript变量var msg得到空值。如何要求javascript等到PHP变量$msgLive得到值然后才将值从php变量传递到Javascript?

【问题讨论】:

    标签: php javascript mysql


    【解决方案1】:

    您不必担心这一点,因为首先服务器脚本会执行,花时间与数据库通信,为msgLive 变量分配一个值,最后它会生成发送给客户端的 HTML。在这段时间内,客户端一直在等待(并且可能会因为他遇到的慢速连接而诅咒他的 ISP :-))。因此,一旦 HTML 到达客户端浏览器,javascript 变量就会设置其值。所以不需要告诉 javascript 等待,在服务器完成其工作并将 HTML 推送到客户端之前,javascript 甚至都不存在。

    【讨论】:

    • 如果我把另一个 php 代码 放在 javascript 代码下面怎么办? javascript变量var msg的值会变成“12345”?
    • @zac1987,不管你把它放在哪里。您应该真正区分服务器端代码和客户端代码。这是两个完全不同的过程,发生在两个不同的时间点。首先生成 HTML 的服务器发送给客户端,然后客户端将获取它,如果此 HTML 包含 javascript,它将在浏览器中运行,...
    • 所以 var msg 将变为“12345”。我已经明白了。谢谢。
    • 但是当我声明 然后我 javascript alert ("");它成功警报“abc”。但是当我将 javascript 的代码切换到上面的 php 代码时,它无法提醒“abc”。如果如你所说 php run finish 1st,那么只运行 javascript。为什么javascript无法提醒php变量的值?
    • @zac1987 Javascript 永远不会在 php 之前执行,这毫无意义!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2016-03-26
    • 2015-03-24
    • 2014-06-27
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多