抱歉我的编码技能有限等等,但希望你能看到我在尝试的东西。我想废弃表单复选框,并有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
答案 0 :(得分:1)
如果你想要超链接,只需使用类似
的内容<a href="myphpfile.php?option=yes">Yes</a>
<a href="myphpfile.php?option=no">No</a>
此外,您可能希望使用单引号'
而不是‘
来查询。另外,我建议使用mysqli
或PDO
,以便您可以使用预准备语句而不是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>