我一直在创建一个网站,我的用户可以对已上传的图片进行评分。目前,我使用单选按钮和提交按钮来获取用户评级并将其保存在系统中。我想更改此设置,以便代码使用图片点击来获得用户评分。到目前为止,我有以下代码,但它只适用于一个图像按钮。是否有任何方法可以根据单击的图像来更改此结果以获得结果。
代码:
HTML
<form>
<input
type="image"
name="flag_submit"
src="img/Flag.png"
onmouseover="this.src='img/Flag_Click.png'"
onmouseout="this.src='img/Flag.png'"
height="30"
width="30"
/>
</form>
PHP
if (isset($_POST['flag_submit_x']))
{
//Do process of rating.
}
有什么方法可以创建多个图像按钮,并且在PHP代码中检测到按下了什么图像按钮?
答案 0 :(得分:3)
将名称更改为数组name="flag_submit[1]"
。为每个图像分配不同的值,然后就可以了。
在php端将其作为数组读取:if (isset($_POST['flag_submit'][1]))
。
或者更好的是,如果$_POST['flag_submit']
循环,并找到所有值:
foreach ( $_POST['flag_submit'] as $value ) {
echo $value . ' has been clicked.';
}
<form method="post">
<input type="image" name="rateButton[1]" src="img/Rate1.png" height="40" width="40" value="1"/> T
<input type="image" name="rateButton[2]" src="img/Rate1.png" height="40" width="40" value="1"/> T
<input type="image" name="rateButton[3]" src="img/Rate1.png" height="40" width="40" value="1"/> T
<input type="image" name="rateButton[4]" src="img/Rate1.png" height="40" width="40" value="1"/> T
</form>
<pre>
<?php
if ( isset( $_POST['rateButton'] ) ) {
foreach ( $_POST['rateButton'] as $key => $value ) {
echo 'Image number '.$key.' was clicked.';
}
}
?>
在您的情况下,您不关心,它发送什么价值,您需要关心的是用于提交表单的密钥,因为始终只有一个密钥集。
答案 1 :(得分:1)
这是一个可能有帮助的技巧:
我创建了一个表格的HTML页面:
CODE
<html><body><form method="post" action="show_post.php">
<input type="image" name="stamp[1134118800]" src="redstar.gif" value="red">
<input type="image" name="stamp[1134140400]" src="greenstar.gif" value="green">
</form></body></html>
表单提交的脚本show_post.php读取:
CODE
<?php
print '<html><body><pre>';
print_r ($_POST);
print '</pre></body></html>';
?>
当我点击第一张图片时,我得到:
Array
(
[stamp] => Array
(
[1134118800] => 21
)
)
当我点击第二张图片时,我得到:
Array
(
[stamp] => Array
(
[1134140400] => 15
)
)
这适用于Opera,IE和Mozilla。
答案 2 :(得分:1)
第一个代码对我来说很好,对 将名称更改为数组名称=&#34; flag_submit [1]&#34;。为每个图像分配不同的值,然后就可以了。
在php端将其作为数组读取:
if (isset($_POST['flag_submit'][1]))
答案 3 :(得分:0)
您可以有多个&lt; button type =“submit”&gt;具有相同名称但可以包含图像的不同值的元素,只会发送已点击的元素的值。
有关详细信息,请参阅规范:http://www.w3.org/html/wg/drafts/html/master/forms.html#the-button-element
答案 4 :(得分:0)
这可能会对你有所帮助
<?php
if($_POST['button'])
{
echo "you have pressed button ".$_POST['button'];
}
?>
<style>
input.overridecss {
background-color: transparent;
border: 0px;
background-position: center;
background-repeat: no-repeat;
background-image: url(http://i49.tinypic.com/rm2w0i.png);
}
</style>
<form method="POST">
<input type="submit" name="button" value="1" class="overridecss"/>
<input type="submit" name="button" value="2" class="overridecss"/>
<input type="submit" name="button" value="3" class="overridecss"/>
<input type="submit" name="button" value="4" class="overridecss"/>
<input type="submit" name="button" value="5" class="overridecss"/>
</form>