使用PHP检索的参数调用javascript方法


calling javascript method with a php retrieved argument

我在单独的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. 首先:首先执行的是PHP,而不是JavaScript。在你的例子中,它不可能是相反的。
  2. data_arrival未定义…因为要么你根本没有定义它,要么因为它是在调用后定义的。

要将值从PHP传递到JavaScript,您可以使用:

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

它将生成如下内容:

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

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

编辑

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