【发布时间】:2012-02-02 07:02:35
【问题描述】:
好吧,我已经尝试找到这个问题的答案已经好几个小时了,但我自己无法解决。
我正在尝试从 PHP 函数调用 Javascript 父函数,但是它没有被调用。
当使用 onclick 方法 onclick='parent.dosomething(); 时,一切似乎都可以正常工作,但如果我尝试通过回显来调用该函数,它会由于某种原因而失败。
echo "<script>parent.reloadprofmessages();</script>"; //this is what is not getting called
这是 PHP 函数:
function checkactivity($username)
{
//These are just queries being executed (irrelevant)
$querystats = "SELECT users.fullname, activity.id, activity.sender, activity.receiver, activity.type, activity.dateposted, activity.seen, activity.related FROM activity, users WHERE activity.receiver = '$username' && activity.seen = '0' ORDER BY id DESC LIMIT 1";
$resultstats = mysql_query($querystats);
$num_stats = mysql_num_rows($resultstats);
$rowactivity = mysql_fetch_assoc($resultstats);
//End of queries
if($num_stats > 0) //If there are registries
{
$user = $_SESSION['Username'];
$activity_date = $rowactivity["dateposted"];
$activity_type = $rowactivity["type"];
$activity_sender = $rowactivity["sender"];
$timeactivity = strtotime( "$activity_date" );
$actualtime = time();
$timetoseconds = $actualtime - $timeposted;
$timetominutes = floor($timepassedtoseconds/60);
if($timetominutes < 2)
{
if($activity_sender != $user)
{
if($activity_type == 1) //Messages
{
echo "<script>parent.reloadprofmessages();</script>"; //this is what is not getting called
}
}
}
}
}
这是我在父页面上的 Javascript 函数:
function reloadprofmessages()
{
$('#friendrequests').load('showprofmessages.php?username=<?php echo $actualuser; ?>').fadeIn("slow");
} //refreshes messages
我在 Google Chrome 中按 CTRL + Shift + I 进入开发人员工具,网络 > 执行调用 PHP 函数的请求的页面 > 预览,这就是我收到的内容:
<script>parent.reloadprofmessages();</script>
但是,该函数没有被调用。
解决这个问题会解决我很多问题,对我来说,知道为什么它不起作用实际上仍然是一个谜,因为它在其他情况下也有效。
提前感谢您的帮助。
【问题讨论】:
-
我不会尝试使用这种通过 php 调用 javascript 的方法。如果你需要多次调用这个 js 方法会发生什么?你不想一直回显
标签: php javascript jquery function parent