如何为特定图片分配评级?
Posted
技术标签:
【中文标题】如何为特定图片分配评级?【英文标题】:How to assign rating to specific picture? 【发布时间】:2021-10-01 07:33:08 【问题描述】:while ($row = mysqli_fetch_array($result)) echo "";
echo "<div id='img_div'>";
echo "<i class='fas fa-times'></i>";
echo "<img class='photoDeGallery' src='image/".$row['image']."'>";
echo "<div class='dropdown'>";
echo "<span>Details</span> ";
echo "<div class='dropdown-content'>";
echo "<p>".$row['text']."</p>";
echo "</div>";
echo "</div>";
echo "<div class='feedback'>";
echo "<input type='radio' name='star' id='loveIt' checked='checked'>";
echo "<label for='loveIt'>";
echo "<img class='imag' src='love_it.png'>";
echo "<h4>love it</h4>";
echo "</label>";
echo "<input type='radio' name='star' id='likeIt'>";
echo "<label for='likeIt'>";
echo "<img class='imag' src='liked_it.png'>";
echo "<h4>like it</h4>";
echo "</label>";
echo "<input type='radio' name='star' id='applause'>";
echo "<label for='applause'>";
echo "<img class='imag' src='applause.png'>";
echo "<h4>applaus</h4>";
echo "</label>";
echo "<input type='radio' name='star' id='laugh'>";
echo "<label for='laugh'>";
echo "<img class='imag' src='laugh.png'>";
echo "<h4>laugh</h4>";
echo "</label>";
echo "<input type='radio' name='star' id='boring'>";
echo "<label for='boring'>";
echo "<img class='imag' src='boring.png'>";
echo "<h4>boring</h4>";
echo "</label>";
echo "</div>";
echo "</div>";
echo "</div>";
你好,上面的代码我提供了。
在 button_click 上运行上面的代码。该代码在数据库中插入图片并在网站上显示它们。在 img_div 内的每张照片下,还显示了图片的“详细信息”以及评级。我使用无线电输入创建的评级系统(如代码中所示)。评分系统出现在每张图片下方,已上传到数据库并显示在网站上。
问题是: 当我对一张图片进行评分时,所有其他图片都会获得相同的评分。
如何为每张图片保留自己的评级,以便将评级分配为 1:1 rating1:photo1、rating2:photo2 等?
我应该将 rating_clicks 存储在数据库中还是可以计算比率(喜欢、不喜欢等)?
如果有人可以帮助我并且 Modos 不会关闭我的帖子,我将不胜感激? 最好的祝福 瑞达
【问题讨论】:
【参考方案1】:您的广播组需要相同的名称,但每个组都需要有自己唯一的共享名称。您可以通过在名称中附加项目的 ID 来执行此操作。这样,当您整理 POST 数据时,您将获得对与评级相关的 ID 的引用。此外,您不应该对多个元素使用相同的 ID,因此我将它们更改为数据属性。您可以将文本和收音机包装在标签标签中以将两者关联在一起
<?php while ($row = mysqli_fetch_array($result)) ? >
<div id='img_div'>
<i class ='fas fa-times'></i>
<img class='photoDeGallery' src='image/<?php echo $row['image']?>'>
<div class='dropdown'>
<span>Details</span>
<div class='dropdown-content'>
<p><?php echo $row['text']?></p>
</div>
</div>
<div class='feedback'>
<label>
<input type='radio' name='star_<?php echo $row['id']?>' data-reaction='loveIt' checked='checked'>
<img class='imag' src='love_it.png'>
<h4>love it</h4>
</label>
<label>
<input type='radio' name='star_<?php echo $row['id']?>' data-reaction='likeIt'>
<img class='imag' src='liked_it.png'>
<h4>like it</h4>
</label>
<label>
<input type='radio' name='star_<?php echo $row['id']?>' data-reaction='applause'>
<img class='imag' src='applause.png'>
<h4>applaus</h4>
</label>
<label>
<input type='radio' name='star_<?php echo $row['id']?>' data-reaction='laugh'>
<img class='imag' src='laugh.png'>
<h4>laugh</h4>
</label>
<label>
<input type='radio' name='star_<?php echo $row['id']?>' data-reaction='boring'>
<img class='imag' src='boring.png'>
<h4>boring</h4>
</label>
</div>
然后在您的 $_POST 中,您可以像这样找到您的评分
<?php
foreach ($_POST as $p => $v)
if (strpos($p, 'star_')!== false) // if the name of the $_POST item has the string 'star_' in it
$imgid = explode('_', $p)[1]; // get the id by exploding the name into an array like ['star','7'] and choosing the [1] index
$rating = $v; // the rating itself will just be the $_POST value
?>
【讨论】:
您好 Kinglish,非常感谢您,我昨天开始了另一个项目,当我完成它时,我将使用评级系统尝试解决问题。最好的问候瑞达 不幸的是,我不理解帖子中的代码。如果您能解释更多,我将不胜感激 哦,非常感谢 ^^,所以我应该在 db 中为 rating-imgs 创建一个表,然后使用 $imgid 进行爆炸。我会试试的,再次感谢你很多次 不客气。如果这有助于解决您的问题,请考虑通过单击答案左侧的复选标记来接受它作为解决方案。 你好 Kinglish,我会的,谢谢你的建议 :))以上是关于如何为特定图片分配评级?的主要内容,如果未能解决你的问题,请参考以下文章
如何为不同的目标分配特定位置的 BundleDisplayNames