单击数据库中的是/否值,单击超链接

时间:2014-02-17 03:34:36

标签: javascript php html checkbox

抱歉我的编码技能有限等等,但希望你能看到我在尝试的东西。我想废弃表单复选框,并有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>

那么我可以使用HTML等 - 显示图片?是/否 (显示此图像)或(此图像未显示)

非常感谢正确方向的任何一点,非常感谢!

嗨,大家好,很抱歉,我认为我没有正确解释自己。 所有图像在图像数据库表中都具有默认值“隐藏= 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>
}

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

<p>Show Image? Yes / No </p>

我希望'yes'和'no'成为超链接,这种状态将取决于图像的“隐藏”值。 因此,如果显示图像(当前都是),则单词“是”将不是可点击的超链接,只有“否”。 如果我然后单击“否”,我需要它在点击时发布查询,设置隐藏= 1,以隐藏图像。 如果图像已经隐藏,则“是”将是唯一可点击的链接,如果单击该链接将发布值隐藏= 0,则显示图像。

我希望这是有道理的。我遇到的另一个问题是,有多个图像,因此我使用的表格或任何系统需要区分哪个图像正在改变隐藏值。 在代码中,图像的唯一ID字段的访问方式如下:$ tmp-&gt; ID

4 个答案:

答案 0 :(得分:1)

如果你想要超链接,只需使用类似

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

此外,您可能希望使用单引号'而不是来查询。另外,我建议使用mysqliPDO,以便您可以使用预准备语句而不是mysql_函数,这些函数很容易进行mysql注入。

答案 1 :(得分:0)

试试这个

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>

答案 2 :(得分:0)

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

HTML:

 <p>Show image? 
            <form method="post" action="?">
    <input type="hidden" name="option" value="default" />

    <a href="#" class="option" data-value="yes">Yes</a>
    <a href="#" class="option" data-value="no">No</a>
    <input type="submit" name="submit" value="Go!" /> 
            </form>

JS(需要JQuery):

$(".option").click(function (e) {

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

});

然后,当您提交表单时,$_POST应该有&#34;选项&#34;值。

答案 3 :(得分:0)

重申一下,以下表格是我的最新修订版,完美无缺,更新了页面上的数据库和单选按钮。但是,它仍然不是我想要的解决方案。我只想要超链接,如博士和班级发布的上述例子,但由于某些原因,我的网站不接受这些网址,系统会将我转到另一个页面,但没有任何作用。 这是最新的修订版。还有其他解决方案吗? -

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>