我已经对帖子和示例做了很多尝试 - 但我无法理解如何做到这一点。我在我的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()
,并传递getted id $idencol
。
有人可以告诉我怎么做?
提前致谢
答案 0 :(得分:1)
您需要在标头中调用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>";
答案 1 :(得分:0)
load
将从您正在加载的文档中删除<head>
(或者更确切地说,将提取<body>
的内容并丢弃其他所有内容)。
或者:
load
替换为ajax
并提取您手动关注的各种数据答案 2 :(得分:0)
您可以尝试以下内容:INDIRECT
否则,您应该更新您的javascript函数以传递参数。