使用jquery和javascript显示PHP中的变量


Using jquery and javascript to display variable from PHP

我试图使用javascript/jquery显示一个PHP变量,但它显示的是"null"。

if(mysql_num_rows($checkBan) > 0){
            $bannedDate = $checkBan['banLength'];
            if(preg_match('/[0-9]/',$bannedDate)){      
                list($yyyy,$mm,$dd) = explode('-',$bannedDate);
                 $date = $mm."-".$dd."-".$yyyy;
            }
            //$date = "test"; when this is uncommented it appears in the alert so I know the json_encode is working fine
            ?>
            <script type ="text/javascript">
               var bannedUntil= <?php echo json_encode($date); ?>;
               alert('Your account has been banned until ' + bannedUntil +'. Please contant an administrator if you believe this is an error');
            </script>
            <?
        } 

警报看起来很好,但bannedUntil变量为null。但是,当取消对第二个日期变量的注释时,它会显示在警报中。它不是一个单独的函数,所以我不明白为什么范围会成为一个问题。

我看到您使用$checkBan作为mysql_num_rows()中的结果资源,然后尝试在不获取的情况下从中访问数组键。您似乎错过了对mysql_fetch_assoc():的呼叫

if(mysql_num_rows($checkBan) > 0){
        // Fetch a row from the result resource $checkBan
        $row = mysql_fetch_assoc($checkBan);
        $bannedDate = $row['banLength'];
        // etc...
}

另一个提示:看起来您正在将标准MySQL日期格式恢复为YYYY-MM-DD,并使用PHP中的字符串操作将其转换为MM-DD-YYYY。首先,只需在查询中以该格式检索它,就可以避免PHP应用程序代码中的explode()list()调用。

SELECT DATE_FORMAT(banLength, '%m-%d-%Y') FROM yourtable