我已经对帖子和示例进行了多次尝试 - 但我无法理解如何做到这一点。我的 php 文件的头部有这个函数:
.....
<script type = "text/javascript" language="javascript">
function agicol() {
scheduler.clearAll();
var idname$ = $idencol;
scheduler.load("ret_l.php?connector=true&dhx_filter[IDCol]="+idname$,"json");
}
</script>
</head>
在正文中,我使用如下变量:
<body bgcolor="#C0DFFD" onLoad="init();">
<?php
if(isset($_GET['id']))
{
$idencol = $_GET['id'];
echo "<script>alert($idencol);</script>";
// Alert works properly
// $idencol contains id sended
}
?>
所以,我应该调用函数 agicol()
,并传递获取的 id $idencol
。
谁能告诉我怎么做吗?
提前致谢
最佳答案
您需要在 header 中调用js函数agicol()
,该函数使用主体中php设置的js变量$idencol
(这里的变量名称非常糟糕) 。
代码中的问题是 PHP 部分没有正确设置预期的 js 变量。像这样更改你的 PHP 部分(注意我使用的转义\$):
<?php
if(isset($_GET['id']))
{
$idencol = $_GET['id'];
echo "<script>";
echo "\$idencol = $idencol;"; //Set JS global variable you expect in the function
echo "agicol();"; //Call the function
echo "</script>";
}
?>
这将解决您当前的问题。
<小时/>但是还有很多更好的方法可以做到这一点。您可以将 JS 函数设置为接受参数并通过该参数发送 id,而不是使用名称不好的全局变量。
function agicol(id) {
scheduler.clearAll();
scheduler.load("ret_l.php?connector=true&dhx_filter[IDCol]=" + id, "json");
}
...在 PHP 正文中
$idencol = $_GET['id'];
echo "<script>agicol($idencol);</script>";
关于javascript - 从 php 调用 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33898179/