php - Javascript 函数不会回显

标签 php javascript function loading

我有一个 php 文件,其中包含一些 javascript 代码,我正在使用 HTML 中的脚本标签调用该文件。我的问题是当我在 php 中有一个 get 方法时,java 函数不会回显..这是我的代码:

Header("content-type: application/x-javascript");

        $monthS = $_GET['location'];

     // Connect to MySQL
         if ( !( $database = mysql_connect( "localhost",
            "root", "" ) ) )                      
            die( "Could not connect to database </body></html>" );

    // open Events database
         if ( !mysql_select_db( "Events", $database ) )
            die( "Could not open Events database </body></html>" );


            $result = mysql_query("SELECT * FROM posted_events WHERE Month_ = 'July' ") 
                    or die ('Error updating database because: '.mysql_error());;


            $daysArray = Array();
            while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                $daysArray[] =  $row['DayNum']; }
            $length = count($daysArray);

            echo "function test() { ";
                echo "alert('monthS');";
                for($i=0; $i < $length; $i++) { 
            echo "var active = document.getElementById('day'+".$daysArray[$i].");
             active.setAttribute('class', active.getAttribute('class') + ' event');  ";
}       
            echo "}";

但是如果我删除 $monthS = $_GET['location']; 那么该函数会完美地回显,但我需要该变量。我使用 JQuery 从 JS 获取了该变量。

最佳答案

对于这种类型的代码要非常小心。您直接生成 Javascript。 任何警告或 PHP 的杂散输出都可能会在代码中引入语法错误,导致 JS 解释器杀死整个脚本 block 。

您最好生成一些数据,然后将其发送到预先编写的 Javascript,然后 JavaScript 可以处理这些数据,例如

$data = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
   $data[] = $row;
}
?>
<script type="text/javascript">
var data = <?php echo json_encode($data); ?>;

for (i in data) {
   ... do stuff with javascript data array
}

就目前情况而言,如果此脚本的 URL 中没有 location 参数,您可能会收到有关未定义数组键的 PHP 警告。该警告将成为 JS 代码的一部分,并被视为语法错误。

关于php - Javascript 函数不会回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952840/

相关文章:

php - Laravel 多通知类型

php - 管理员和经理的 Laravel 5 多个 "dashboard"路由

模块中的javascript私有(private)内部函数可以访问 "this"范围

python - 在该函数内调用该函数

mysql - 有任何 SQL GROUP_CONCAT 替代函数吗?

php - 通过 Ajax 将 JSON 对象从 php 传递到 JS

php - 如何在php中ping ip地址并给出结果

javascript - Angular 2 中的多选下拉列表

javascript - 如何使用 JSON 数据创建 html 表格?

javascript - window.href 打开新窗口?