用php检索的参数调用javascript方法

时间:2014-05-18 10:02:24

标签: javascript php html

我在单独的js文件中有一个javascript方法,我想从带有php参数的HTML页面调用。

<?php

        include "connection.php";

        $selectedpatient = $_POST['patient_dropdown'];

        $myquery = "SELECT * FROM `patient_info` patient_info.Name = '$selectedpatient' ";

        $query = mysql_query($myquery);

            if ( ! $query ) {
                echo mysql_error();
                die;
            }

            $data = array();

            for ($x = 0; $x < mysql_num_rows($query); $x++) {
                $data[] = mysql_fetch_assoc($query);
            }

         $tempdata = json_encode($data);
    ?>

        <script> data_arrival($_tempdata); </script>

我在HTML标题中定义了javascript文件的源代码。它显示两个错误:

1)javascript文件中的解析错误 - 这是可以理解的,因为我在头文件中包含了javascript文件,并且在php实际检索任何数据之前文件被执行。

2)data_arrival方法未定义

我该如何解决这个问题?我想将$ tempdata(在填充php之后)传递给data_arrival方法作为参数。

提前致谢!

1 个答案:

答案 0 :(得分:2)

  1. 首先:它首先执行的是PHP,而不是JavaScript。在你的例子中,它可能是反过来的。
  2. data_arrival未定义...因为您根本没有定义它,或者因为它是在它被调用后定义的。
  3. 要将值从PHP传递到JavaScript,您可以使用:

    data_arrival(<?php echo $_tempdata; ?>);
    

    它将生成如下内容:

    data_arrival([a, b, c, d, ...]);
    

    当然,data_arrival函数需要在执行之前定义。

    修改

    使用相同的变量名称也许不错:$_tempdata vs $tempdata