【问题标题】:Javascript does not show data obtained from PHP and SQL ServerJavascript 不显示从 PHP 和 SQL Server 获得的数据
【发布时间】:2019-01-15 07:59:28
【问题描述】:

我是 PHP 新手,对 Javascript 知之甚少,我正在尝试创建一个从数据库(SQL SERVER)获取时间限制的计时器,因此当您在 PHP 中获取值并分配它时到 Javascript 函数的变量,我得到一个 -1。

从我读到的内容看来,PHP 对象类型与 Javascript 中的不同,这可以通过 json_encode() 解决,但它一直显示为 -1。

 <?php
  require('db.php');
  if ($connection) 
  { 
    $TimEva = 60;
    $rs = odbc_exec($connection,"SELECT time FROM DBO.tablaCrono cr WHERE cr.id = '$EncIdx';");   
    while(odbc_fetch_row($rs))
    {
      $TimEva=odbc_result($rs,"TimEva");
    }
    echo "<div align='center'><h1><label id = 'tiempo'>".$TimEva."</label></h1></div>";
    $rs = odbc_close($connection);
    }
  else
  {
    echo "<div align='center'>no se pudo conectar</div><br />";
  }
 ?>

在 Javascript 函数中我有以下内容

var label = document.getElementById("tiempo"),
minutos = <?php  echo json_encode($TimEva,JSON_HEX_TAG);?>,

我希望60,这是数据库中的值,它在html中显示得很好,但是变量分钟的值,抛出-1

我可以得到指导,帮助,使用 AJAX,我真的有点迷茫。

【问题讨论】:

  • 您需要了解的是,PHP 仅在页面处于服务器端时才处于活动状态并存在,一旦页面下载到客户端,JavaScript 就会处于活动状态并且 PHP 不再运行。页面输出格式是否正确,是否有 html 标签和 body 标签?页眉是否在内容之前发送?诸如内容类型、内容长度之类的标头?

标签: javascript php json sql-server


【解决方案1】:
  $rs = odbc_exec($connection,"SELECT `time` FROM DBO.tablaCrono cr WHERE cr.id = '$EncIdx';");

将您的查询更改为此。 time 是该语言中使用的一个词,因此如果要将其用作列,则需要对其进行转义。

还将您的 JS 代码修改为:

<script>
    var label = document.getElementById("tiempo")
    var minutos = <?php  echo json_encode($TimEva,JSON_HEX_TAG);?>
    console.log(minutes)
</script>

然后打开你的控制台窗口,看看你的变量有什么值。

最后确保您在$EncIdx 变量中确实有一个值,因为我们看不到您如何为其分配值。我猜它在你没有分享的部分代码中。

【讨论】:

  • 好吧,它把我抛出 null 然后 -1
  • echo $EncIdx 在你的 php 脚本中检查它的价值。你在那里有价值吗?根据您的代码,这是一个未定义的变量。
  • 是的,页面上其他查询都是基于这个参数 if(!empty($_GET['id'])) { $EncIdx = $_GET['id']; }
【解决方案2】:
<script>
            function tiempo()
            {


                var label = document.getElementById("tiempo"),

                minutos   = <?php  echo json_encode($TimEva,JSON_NUMERIC_CHECK);?>,
                segundos  = 0,
                intervalo = setInterval(function(){
                            console.log(minutos)


                    if (--segundos < 0){
                        segundos = 59;
                        minutos--;
                    }

                    if (!minutos && !segundos)
                    {
                        clearInterval(intervalo);
                        alert("Lo sentimos se termino el tiempo");
                        //document.evaluacion.submit();
                    }

                    label.innerHTML = minutos + ":" + (segundos < 10 ? "0" + segundos : segundos);
                }, 1000);
            }
        </script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2020-10-18
    相关资源
    最近更新 更多