我在使用期间遇到问题 点击链接,我需要更新数据库中的一个字段,然后重定向到另一个页面。
我有这段代码:
<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>
这甚至可能吗? 做什么是正确的? 非常感谢!
答案 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>