【问题标题】:Update database with javascript使用 javascript 更新数据库
【发布时间】:2012-07-31 15:47:23
【问题描述】:

由于布局的原因,我不能使用另一个 <form> 标签,所以我尝试使用 javascript 来更新数据库。

由于代码只是用window.location.href 更改URL,它不会重新加载页面来运行if 语句。

这是我的代码:

$check_view = $member->getUsersView($user_id);
if((isset($_GET['view-all'])) && $check_view != $_GET['view-all'])
{
    $view_all = $_GET['view-all'];
    $database->query('UPDATE users SET view_all = :viewall WHERE id = :userid', array(':viewall' => $view_all, ':userid' => $user_id));
}

<div onclick="javascript:window.location.href = \'page.php?action=list&'.(isset($_GET['view-all']) && $_GET['view-all']=="No" && $check_view=="No" ? 'view-all=Yes' : 'view-all=No').'\';">'.(isset($_GET['view-all']) && $_GET['view-all']=="No" && $check_view=="No" ? 'Show All' : 'Hide').'</div>

谁能帮帮我?

编辑:感谢马特的帮助,我得以让它工作:

if(isset($_GET['view-all']))
{
    $check_view = $member->getUsersView($user_id);

    if($check_view != $_GET['view-all'])
    {
        $view_all = $_GET['view-all'];

        $database->query('UPDATE users SET view_all = :viewall WHERE id = :userid', array(':viewall' => $view_all, ':userid' => $user_id));
    }
}

$users_view = $member->getUsersView($user_id);

$view_all = "No";
$hide_show = "Hide";
if((isset($_GET['view-all']) && ($_GET['view-all']=="No")) || ($users_view=="No"))
{
    $view_all = "Yes";
    $hide_show = "Show All";
}

$data = '<a href="page.php?action=list&view-all='.$view_all.'">'.$hide_show.'</a>';

【问题讨论】:

  • 为什么要使用&lt;div&gt; + onclick 而不是普通的&lt;a&gt;
  • 您需要显示 DIV 的客户端输出,而不是服务器端 PHP 代码。
  • 看在 GOD 的份上,请在 &lt;script&gt; 块中定义您的 onclick 函数,然后从那里调用该函数!

标签: php javascript pdo


【解决方案1】:
<a href="page.php?action=list&view-all=<?=(isset($_GET['view-all']) && $_GET['view-all']=="No" && $check_view=="No" ? "Yes" : "No"?>">
<?=isset($_GET['view-all']) && $_GET['view-all']=="No" && $check_view=="No" ? 'Show All' : 'Hide'?>
</a>

上面的代码可以工作,但 UGLY AS SIN。尝试清理它:

<?php
$view_all = "No";
$hide_show = "Hide";
if (isset($_GET['view-all']) && $_GET['view-all']=="No" && $check_view=="No") {
    $view_all = "Yes";
    $hide_show = "Show All";
}
?>

<a href="page.php?action=list&view-all=<?= $view_all ?>"><?= $hide_show ?></a>

【讨论】:

  • 知道为什么我点击后会再次显示“全部显示”吗?我必须再次单击它才能显示“隐藏”。 “隐藏”工作正常,如果我点击它“显示全部”显示。
  • @Draven 不是真的,我只是重新组织了你的代码,这样它会更干净;我没有检查它的逻辑准确性(抱歉)。
  • 没问题。我才明白为什么。我在用新值更新数据库之前定义$check_view
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 2013-06-20
  • 2023-03-13
  • 2015-04-20
  • 2010-10-12
  • 1970-01-01
相关资源
最近更新 更多