我正在努力让一个网站正常工作。我所拥有的基本上是显示的两个图像(随机的,从mySQL数据库中取出)。我需要做的是(当用户点击其中一个图像时)如下:
- 更新页面,传递所选图像的信息(提交表单)
- 向数据库中添加一条数据(对图像投赞成票)
我需要使用$_POST将一个值数组传递到下一页。所以我想:
<form name="input" action="the_page.php" method="POST">
<input type="image"
name="img"
src="image.png"
value ="dat1['"data1'",'"data2'",'"data3'"]">
<!-- If value must be a single string, I'll use hidden inputs-->
</form>
<form name="input" action="the_page.php" method="POST">
<input type="image"
name="img"
src="image2.png"
value ="dat2['"data1'",'"data2'",'"data3'"]">
</form>
然后,我可以在mySQL数据库上用一个更新记录的小php upvote()函数对所选图像进行投票。当加载新页面时,将完成向上投票过程。由此,我有几个问题:
- 我猜这些图像会起到按钮的作用,对吧?(他们应该提交表格,从而刷新页面)。如果没有,我如何才能做到这一点?我无法使用链接(因为我无法向其添加值)。也许是javascript函数?但我也不知道如何以这种方式提交表格
- 一旦页面被重新加载,这是否意味着只有一个表单中的数据被提交,所以我可以通过简单地调用PHP变量$_POST['img']来检索数据,并返回一个数组
编辑:我现在设法把一切都做好了,与我最初提出的略有相似。不过,感谢AJAX的建议,因为它帮助我解决了这个问题(查阅了AJAX教程,找到了解决方案)。
这是我的解决方案:
<?php
echo "<form name='"input'" action='"F2F.php'" method='"POST'">";
echo "<input type='"hidden'" name ='"table'" value='"".$table1."'">";
echo "<input type='"image'" name='"nom'" src='"".$IMG_Route1."'" value ='"".$Nom_base1."'" border='"0'">";
echo "</form>";
?>
(图像所在位置)
然后,在标题上:
<?php
if ($_POST['nom']||$_POST['nom_x']){
if (!$_POST['nom']){
echo 'Could not retrieve name. $_POST[''nom_x''] = '.$_POST['nom_x']. mysql_error();
exit;
}
if (!$_POST['table']){
echo 'Could not retrieve table. $_POST[''table''] = '.$_POST['table']. mysql_error();
exit;
}
upvote($_POST['table'],$_POST['nom']);
}
?>
您可以使用一个表单和一组单选按钮来稍微简化一些事情。单击标签将切换单选按钮。您可以使用逗号来分隔每个复选框的多个值,然后您可以在稍后的中提取这些值(见下文)
<form name="input" action="the_page.php" method="POST">
<ul>
<li>
<label>
<img src="whatever.jpg" />
<input type="radio" name="selectedImage" id="img1" value="12,16,19" />
</label>
</li>
<li>
<label>
<img src="whatever2.jpg" />
<input type="radio" name="selectedImage" id="img2" value="12,16,19" />
</label>
</li>
</ul>
</form>
您可以通过添加更改事件的监听器来检测单选按钮何时被选中,然后提交表单。
$('input[name="selectedImage"]').change(function() {
$('form[name="input"]').submit();
});
为了抽象多个值,您可以使用PHP分解表单结果,PHP将返回一个值数组。
$selectedImageValues = array();
$selectedImageValues = explode(",", $_POST['selectedImage']);
从那里,您可以提取不同的值并将数据保存到数据库中。