href调用javascript

时间:2012-03-22 07:24:38

标签: javascript href

我在使用期间遇到问题 点击链接,我需要更新数据库中的一个字段,然后重定向到另一个页面。

我有这段代码:

<a href="#" onclick="<?php  

                        $sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' 
                                WHERE ID='" . $id . "'";
                        if (!mysql_query($sql)) ///Cannot query
                        {
                            $logger->error(mysql_error()); 
                        }

                        if ($sql)
                        {
                             $logger->debug('OK');
                        }
                        else
                        {
                             $logger->debug( 'NOt OK');
                        }
                      ?>"> </a>

在php结束标记之后'?&gt;'我可以添加指向的路径吗?喜欢:

<a href="#" onclick="<?php  

                        $sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' 
                                WHERE ID='" . $id . "'";
                        if (!mysql_query($sql)) ///Cannot query
                        {
                            $logger->error(mysql_error()); 
                        }

                        if ($sql)
                        {
                             $logger->debug('OK');
                        }
                        else
                        {
                             $logger->debug( 'NOt OK');
                        }
                      ?> ../index.php"></a>

这甚至可能吗? 做什么是正确的? 非常感谢!

3 个答案:

答案 0 :(得分:1)

这不是正确的方法。

您可以通过多种方式执行此操作。但我建议你将数据库更新代码放在目标页面中(我假设你提到的是index.php)。如果您只想在单击链接时触发数据库更新代码,请使用中间的页面重定向流程。

因此,您的页面流将是:

当前页面(链接点击,简单href到middleman.php)==&gt; middleman.php(这里只运行数据库更新代码并使用标题位置语法来索引.php)==&gt;的index.php

代码:

您有链接的页面 的 source.php

<.... html contents ....>
<a href='middleman.php'>Visit the page</a>
<.... more html contents ....>

<强> middleman.php

<?php  

$sql="UPDATE MyDB.mytable SET Date = '".date("Y-m-d H:i:s")."' WHERE ID='" . $id . "'";
if (!mysql_query($sql)) ///Cannot query
{
   $logger->error(mysql_error()); 
}

if ($sql)
{
 $logger->debug('OK');
}
else
{
 $logger->debug( 'NOt OK');
}

header("Location: index.php"); //redirects to index.php
?>

<强>的index.php

do whatever you want

答案 1 :(得分:0)

呈现页面时,php代码将运行。每当你看到一个网页时,它总是只有html,没有对php代码的实时访问。因此,您不能直接从例如javascript事件执行php块。在您的情况下,当您加载页面时,sql查询将执行一次。

kishu27刚刚发布了一种正确的方法,在这种情况下是你的最佳选择。如果您只想更新数据库,而不是被重定向到另一个页面,那么使用数据库代码对php页面进行ajax调用将是一个不错的选择。

答案 2 :(得分:-1)

使用location.pathname

<a href="#" onclick="location.pathname='<?php ... ?>'"></a>