如何从 php 中的列表中获取值?
Posted
技术标签:
【中文标题】如何从 php 中的列表中获取值?【英文标题】:how to get a value from list in php? 【发布时间】:2019-12-24 23:20:44 【问题描述】:我想在按下提交按钮后从代表星级的列表中获取值。
用户评分后如何最终获得最大值(在 php 中)?
这是星级代码:
<form class="rating" method="post">
<input id="star_rating" name="star_rating" type="hidden" />
<ul>
<li><i class="fa fa-star fa-fw" value="1"></i></li>
<li><i class="fa fa-star fa-fw" value="2"></i></li>
<li><i class="fa fa-star fa-fw" value="3"></i></li>
<li><i class="fa fa-star fa-fw" value="4"></i></li>
<li><i class="fa fa-star fa-fw" value="5"></i></li>
</ul>
</form>
这是我的函数(我尝试使用 $_POST 将其命名为“star_rating”)。
<?php
if (isset($_POST["submitRate"]))
$pid=$_REQUEST['pid'];
$uid = $_POST["rateid"];
$rating = $_POST['star_rating'];
$rate_re = $_POST['txt_reason'];
die("Error " . mysqli_error($con));
$sql = "update userstotasks set reason ='$rate_re' where post_id='$pid' and usr_id='$uid'";
mysqli_query($con, $sql);
那么我如何将星率中选择的值放入我的 php 函数中的变量中? 我想也许我必须连接这些值并使用 foreach 取最高值?..
【问题讨论】:
看起来你需要一个 JS 函数,用从 ul 中选择的值更新隐藏的输入。 列表不会作为表单的一部分提交,您将需要一些 javascript 来检测点击并将值复制到隐藏输入。你有吗? 使用单选按钮会容易得多...使用列表的原因是什么? 【参考方案1】:您可以使其与单选框一起使用,以限制用户选择一种评级。另一种方法是在用户点击评分时使用 javascript 更新隐藏的输入。
仅 html 的解决方案:
<form class="rating" method="post">
<ul>
<li><input type="radio" name="star_rating" value="1" checked/>1 <i class="fa fa-star fa-fw rating_value"></i></li>
<li><input type="radio" name="star_rating" value="2"/>2 <i class="fa fa-star fa-fw rating_value"></i></li>
<li><input type="radio" name="star_rating" value="3"/>3 <i class="fa fa-star fa-fw rating_value"></i></li>
<li><input type="radio" name="star_rating" value="4"/>4 <i class="fa fa-star fa-fw rating_value"></i></li>
<li><input type="radio" name="star_rating" value="5"/>5 <i class="fa fa-star fa-fw rating_value"></i></li>
</ul>
<input type="submit" value="Submit"/>
</form>
使用 javascript 的替代解决方案
<form class="rating" method="post">
<input id="star_rating" name="star_rating" type="hidden" />
<ul>
<li><i class="fa fa-star fa-fw rating_value" data-value="1"></i></li>
<li><i class="fa fa-star fa-fw rating_value" data-value="2"></i></li>
<li><i class="fa fa-star fa-fw rating_value" data-value="3"></i></li>
<li><i class="fa fa-star fa-fw rating_value" data-value="4"></i></li>
<li><i class="fa fa-star fa-fw rating_value" data-value="5"></i></li>
</ul>
</form>
<script>
var ratingValues = document.querySelectorAll('.rating_value');
var startRatingInput = document.querySelector('#star_rating');
ratingValues.forEach(function(ratingValue)
ratingValue.addEventListener('click', function(e)
startRatingInput.value = parseInt(e.currentTarget.dataset.value);
)
)
</script>
阅读有关单选框的更多信息:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/radio
【讨论】:
以上是关于如何从 php 中的列表中获取值?的主要内容,如果未能解决你的问题,请参考以下文章
如何从下拉列表中获取值并插入 MySQL Workbench?
从使用 PHP 的 MySQL 数据库到 iPhone 的分数列表中获取排名