我有两个mysql数据库表:
1)CARS TABLE:包含以下列 i)汽车的名字 和 ii)制造商的名称。
2)RECORDS TABLE:包含以下列 i)用户的名字 ii)给出的评级 iii)汽车的名字。
现在我希望每个用户以两种方式为每辆车提供评级(评级将是文本输入框)。
1)ONE BY ONE:用户从汽车表中输入第一辆汽车的评级。他点击下一步然后转到另一个页面,在那里他可以从汽车表中输入第二辆汽车的评级,同时将第一个评级保存到数据库中。我无法弄清楚如何逐一显示评级页面。使用$ _SESSION?
2)ALL AT ONCE:如果我希望用户立即输入所有车辆的给定评级,那么一旦用户输入评级并点击提交,我如何识别处理页面上的每个评级?
提前感谢。
答案 0 :(得分:0)
1)是的,你可以使用会话。您可以将每个评级存储在一个数组中。在输出任何内容之前,请务必在页面的第一行调用session_start()
。
对于每个页面,您可以执行以下操作:
//start using sessions
session_start();
//if the session variable is empty, create a new array
$votesArray = empty($_SESSION['votesArray']) ? array() : $_SESSION['votesArray'];
//push the submitted vote value
array_push($votesArray, $_POST['voteValue']);
//store the vote array in the session
$_SESSION['votesArray'] = $votesArray;
然后在最后一页上,您可以使用$_SESSION['votesArray']
获取整个投票数组,并使用它做您想做的事。
2)这有点复杂。就个人而言,当我遇到这样的情况时,我会使用索引来构建我的表单。例如:
<form method="post" action="">
<?php
//for each car, generate the form
for($index=0;$index<$numberOfCars;$index++) {
?>
<input name="vote<?php echo $index;?>" type="hidden" value="5">
<?php
}
?>
<input type="submit">
<!-- stores the number of votes that will be submitted -->
<input name="numberOfVotes" type="hidden" value="<?php echo $numberOfCars; ?>">
</form>
这将输出每辆车的隐藏输入,其中包含投票值。提交表单后,您将使用此逻辑进行每次投票:
<?php
for($i=0;$i<$_POST['numberOfVotes'];$i++) {
$vote = $_POST['vote'.$i]; //this is the i'th car's vote
}
?>