Javascript 单击超链接更改数据库中的是/否值

Javascript 单击超链接更改数据库中的是/否值,javascript,php,html,checkbox,Javascript,Php,Html,Checkbox,很抱歉我的编码能力有限等等,但希望你能看到我在尝试什么。我想取消表单复选框,并有2个简单的“是”“否”超链接,这取决于图像是否隐藏或显示。javascript会这样做吗?这是我到目前为止所做的,这是有效的,但正如我所说,我只想要2个链接,而不是复选框 if ($_POST['option']) { if ($_POST['option'] == 'yes') {$hidden = 0;} if ($_POST['option'] == 'no') {$hidden =

很抱歉我的编码能力有限等等,但希望你能看到我在尝试什么。我想取消表单复选框,并有2个简单的“是”“否”超链接,这取决于图像是否隐藏或显示。javascript会这样做吗?这是我到目前为止所做的,这是有效的,但正如我所说,我只想要2个链接,而不是复选框

if ($_POST['option']) {    

    if ($_POST['option'] == 'yes') {$hidden = 0;}
    if ($_POST['option'] == 'no') {$hidden = 1;}

@mysql_query('UPDATE Image SET Hidden = ‘.$hidden.’ WHERE ID = '.$image->ID.'');

        header ('Location: ' . $_SERVER['REQUEST_URI']);
            exit;    
            }

<p>Show image? 
        <form method="post" action="?">
<input type="checkbox" name="option" value="yes">Yes 
<input type="checkbox" name="option" value="no" >No 
<input type="submit" name="submit" value="Go!" /> 
        </form>
if($_POST['option']){
如果($_POST['option']=='yes'){$hidden=0;}
如果($_POST['option']=='no'){$hidden=1;}
@mysql_查询('UPDATE Image SET Hidden='.$Hidden.'WHERE ID='.$Image->ID.');
标题('Location:'.$\u SERVER['REQUEST\u URI']);
出口
}
显示图像?
对
不
这样我就可以使用HTML,比如- 显示图像?是/否 (显示此图像)或(未显示此图像)

任何正确的方向都将不胜感激,非常感谢! 嗨,伙计们,对不起,我想我没有解释清楚。 所有图像在图像数据库表中的默认值为“Hidden=0”,因此它们当前都显示在页面上。这是代码-

// there is  some SQL here that fetches all images
// here is the actual code that shows images:

foreach($ids as $id)
    {
    $tmp = new Image($id,true);
    if (!$tmp->ID) continue;
<p>
<img src=”/myurl/’.$tmp->ID.’.jpg”>
</p>
}
//这里有一些SQL可以获取所有图像
//以下是显示图像的实际代码:
foreach($id作为$id)
{
$tmp=新图像($id,true);
如果(!$tmp->ID)继续;

ID.“jpg”>

}
我想要的是,在这个循环中,在每个图像标记下面,有一些HTML:

<p>Show Image? Yes / No </p>
是否显示图像?是/否

我希望“是”和“否”是超链接,其状态取决于图像的“隐藏”值。 因此,如果显示图像(当前所有图像),则“是”一词将不是可单击的超链接,只有“否”将是。 如果我单击“否”,我需要它在单击时发布查询,设置Hidden=1,隐藏图像。 如果图像已隐藏,则“是”将是唯一可单击的链接,如果单击该链接,则将发布值hidden=0,因此显示图像

我希望这是有道理的。我遇到的另一个问题是,存在多个图像,因此表单或我使用的任何系统都需要区分它正在为哪个图像更改隐藏值。
在代码中,图像的唯一id字段是这样访问的:$tmp->id

如果您想要超链接,只需使用

<a href="myphpfile.php?option=yes">Yes</a>
<a href="myphpfile.php?option=no">No</a>

此外,您可能希望在查询中使用单引号
,而不是
。另外,我建议使用
mysqli
PDO
,这样您就可以使用预先准备好的语句,而不是容易进行mysql注入的
mysql\ucode>函数。

试试这个

if(isset($_GET['cmd']))
{
    if($_GET['cmd']=='yes')
    {$hidden = 0;}
    if($_GET['cmd']=='no')
    {$hidden = 1;}

@mysql_query('UPDATE Image SET Hidden = '.$hidden.' WHERE ID = '.$image->ID.'');

        header ('Location: ' . $_SERVER['REQUEST_URI']);
            exit;    
           }

?>
<p>Show image? <br />
      <a href="yesNoLink.php?cmd=yes">Yes</a> <br /> <!--Replace page url according to yours -->
      <a href="yesNoLink.php?cmd=no">No</a>
if(isset($\u GET['cmd']))
{
如果($\u GET['cmd']=='yes')
{$hidden=0;}
如果($_GET['cmd']=='no')
{$hidden=1;}
@mysql_查询('UPDATE Image SET Hidden='.$Hidden.'WHERE ID='.$Image->ID.');
标题('Location:'.$\u SERVER['REQUEST\u URI']);
出口
}
?>
显示图像


最简单的方法是使用隐藏的输入字段,该字段将与表单的其余部分一起提交,并使用javascript更改该隐藏字段的值

HTML:


然后,当您提交表单时,
$\u POST
应该有“option”值。

只是重申一下,以下表单是我的最新修订版,非常适用于更新数据库和页面上的单选按钮。然而,这仍然不是我想要的解决方案。我只想要超链接,就像上面博希和Class发布的例子一样,但由于某种原因,我的网站不接受这些URL,系统将我转到不同的页面,没有任何效果。 这是最新的有效版本。还有别的解决办法吗-

if ($_POST[''.$tmp->ID.'']) {    

    if ($_POST[''.$tmp->ID.''] == 'yes') {$hidden = 1;}
    if ($_POST[''.$tmp->ID.''] == 'no') {$hidden = 0;}

@mysql_query('UPDATE Image SET Hidden = '.$hidden.' WHERE ID = '.$tmp->ID.' LIMIT 1');

        header ('Location: ' . $_SERVER['REQUEST_URI']);
            exit;    
            }

        <p>Hide image? 
        <form method="post" action="?">
<input type="radio" name="'.$tmp->ID.'" value="yes" '.($tmp->Hidden ? 'checked' : '').'>Yes 
<input type="radio" name="'.$tmp->ID.'" value="no" '.(!$tmp->Hidden ? 'checked' : '').'>No 
<input type="submit" name="submit" value="Go!" /> 
        </form>
if($_POST['.$tmp->ID.']){
如果($_POST['.$tmp->ID.']=='yes'){$hidden=1;}
如果($_POST['.$tmp->ID.']=='no'){$hidden=0;}
@mysql_查询('UPDATE Image SET Hidden='.$Hidden.'WHERE ID='.$tmp->ID.'LIMIT 1');
标题('Location:'.$\u SERVER['REQUEST\u URI']);
出口
}
隐藏图像?
对
不

您能进一步详细说明一下吗?这里有点困惑您想问什么。您只是想根据单击的超链接更改数据库中“是/否”的值吗?您好,抱歉。我希望现在能解释得更好。谢谢,这是我想要的东西,但由于某种原因,它不起作用。当我点击一个是/否链接时,我的网站的url系统就会把我扔到编辑图像页面。我完全遵循了这个例子,除了我的链接是这样的-网站不喜欢它并将我发送到另一个页面是/否链接部分是html的,你在打印它们时是否将url部分包含在标记中?
$(".option").click(function (e) {

    $("input[name=option]").val($(this).attr("data-value"));

});
if ($_POST[''.$tmp->ID.'']) {    

    if ($_POST[''.$tmp->ID.''] == 'yes') {$hidden = 1;}
    if ($_POST[''.$tmp->ID.''] == 'no') {$hidden = 0;}

@mysql_query('UPDATE Image SET Hidden = '.$hidden.' WHERE ID = '.$tmp->ID.' LIMIT 1');

        header ('Location: ' . $_SERVER['REQUEST_URI']);
            exit;    
            }

        <p>Hide image? 
        <form method="post" action="?">
<input type="radio" name="'.$tmp->ID.'" value="yes" '.($tmp->Hidden ? 'checked' : '').'>Yes 
<input type="radio" name="'.$tmp->ID.'" value="no" '.(!$tmp->Hidden ? 'checked' : '').'>No 
<input type="submit" name="submit" value="Go!" /> 
        </form>