0

レイアウトが原因で別の<form>タグを使用できないため、javascriptを使用してデータベースを更新しようとしています。

コードはURLを変更しているだけなので、ステートメントwindow.location.hrefを実行するためにページをリロードしていません。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>';
4

1 に答える 1

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>

上記のコードは機能しますが、罪のように醜いです。クリーンアップしてみてください:

<?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>
于 2012-07-31T16:10:11.483 に答える