从php调用Javascript函数
我用帖子和例子做了很多尝试,但我不知道如何做到这一点。我的php文件的头部有一个函数:从php调用Javascript函数,javascript,php,Javascript,Php,我用帖子和例子做了很多尝试,但我不知道如何做到这一点。我的php文件的头部有一个函数: ..... <script type = "text/javascript" language="javascript"> function agicol() { scheduler.clearAll(); var idname$ = $idencol; scheduler.load("ret_l.php?connector=true&d
.....
<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>
。。。。。
函数agicol(){
scheduler.clearAll();
变量idname$=$idencol;
load(“ret_l.php?connector=true&dhx_filter[IDCol]=”+idname$,“json”);
}
在主体中,我使用了这样一个变量:
<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()
,并传递gettedid$idencol
有人能告诉我怎么做吗
提前感谢
加载
将从正在加载的文档中删除
(或者更确切地说,将提取
的内容并放弃所有其他内容)
要么:
- 在整个站点加载的JS文件中定义函数(这通常是最好的方法)
- 将脚本移动到正文中
- 将
替换为load
并手动提取您关心的各种数据位ajax
echo“agicol();”
否则,您应该更新javascript函数以传递param。您需要调用头中的js函数agicol()
,该函数使用php在主体中设置的js变量$idencol
(此处的变量名非常糟糕)
代码中的问题是PHP部分没有正确设置预期的js变量。像这样更改您的PHP部分(注意我使用的escape\$I):
。。。在PHP中
$idencol = $_GET['id'];
echo "<script>agicol($idencol);</script>";
$idencol=$\u GET['id'];
回声“agicol($idencol);”;
当然只需将alert($idencol)
替换为agicol($idencol)
您在上一页没有传递id
。您正在传递连接器
和dhx\U过滤器[IDCol]
,这两个过滤器都不会为您生成$\u GET['id']
。@MarcB谢谢,但我不清楚。我试图更好地解释:在主页上,我点击链接,将id传递到一个新页面,我在其中有上面的代码。加载时,此页将正确发送id。现在,我想把这个id和call函数传递到这个页面的头部。但是Chris Evans建议的方法不起作用。我得到了这个错误“在….中调用未定义的函数agicol()”,然后你需要把函数agincol(){…}
的东西也放到那个页面中,这意味着你最好把它放到一个外部的.js文件中并链接到两个页面。我知道有很多方法可以得到这个结果,然而,从php代码调用这个函数是不可能的吗?@Jayelef-因为php与JavaScript在不同的计算机上执行,是的,这是不可能的。您必须将JavaScript交付给客户端,并让客户端执行它。您当前的方法将JavaScript交付给客户端,然后丢弃包含您希望执行的一半代码的
。感谢您的解释@quentin考虑我提出的替代方法。你至少应该这样做。还要了解数据从php传递到js的方式。是的,我刚刚使用了您建议的第二种方法,效果很好。与其称之为“传递数据”,我想说的是“php正在用硬编码的值组装js脚本”。这里就是这样,对不起。有时我无法翻译我的想法,所以我使用了不好的术语或表达方式!
function agicol(id) {
scheduler.clearAll();
scheduler.load("ret_l.php?connector=true&dhx_filter[IDCol]=" + id, "json");
}
$idencol = $_GET['id'];
echo "<script>agicol($idencol);</script>";