美好的一天 我有一个html表,我在其上使用分页,以便只显示一定数量的项目。问题是我需要选择多个复选框,并且适用于单个页面,但我需要在页面之间工作。例如,在第1页上,您选择了3个项目,在下一页中您选择了5个项目,当POST发生时,我需要将所有这些项目放在一个位置,以便我可以将它们存储在数据库中。
我可以在会话中存储数据,然后在选择页面时,我从会话中获取该页面的数据,并将会话中的所有项目标记为检查,并从会话中设置数量。我想这可行,但我不喜欢。所以我很感兴趣,如果在PHP中有其他方法可以做到这一点。
以下是一些代码:
<?php
$num_rec_per_page = 10;
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = 1;
};
$start_from = ($page - 1) * $num_rec_per_page;
$allProductsForPaging = GetAllProductsForPaging($start_from, $num_rec_per_page);
?>
<body>
<form action="controllers/newOrderDetails.php" method="POST">
<div><label>Datum dostave:</label><input type="text" id="Date" name="Date" required="required"></div>
<table id="Products">
<thead>
<tr>
<th><input type="checkbox" id="CheckAll" /></th>
<th>Naziv proizvoda</th>
<th>Količina</th>
<th>Cijena</th>
</tr>
</thead>
<tbody>
<?php
while ($row = $allProductsForPaging->fetch_assoc()) {
?>
<tr>
<td><input type="checkbox" class="ProductCheckBox" name="Product[]" value="<?php echo $row["ID"] . '|' . $row["ProductNameCroatian"] . '|' . $row["PriceInHRK"] . '|' . $row["PriceInEUR"]; ?>" /></td>
<td><?php echo $row["ProductNameCroatian"]; ?></td><td><input id="<?php echo $row["ID"] . 'Quantity'; ?>" name="<?php echo $row["ID"] . 'Quantity'; ?>" class="quantity" type="number" min="1" value="1" step="1" readonly/></td>
<td><?php echo $row["PriceInHRK"]; ?></td>
</tr>
<?php
};
?>
</tbody>
</table>
<?php
$allProducts = GetAllProducts();
$total_records = $allProducts->num_rows;
$total_pages = ceil($total_records / $num_rec_per_page);
echo "<a href='napraviNovuAdminNarudzbu.php?page=1'>" . '|<' . "</a> ";
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a href='napraviNovuAdminNarudzbu.php?page=" . $i . "'>" . $i . "</a> ";
};
echo "<a href='napraviNovuAdminNarudzbu.php?page=$total_pages'>" . '>|' . "</a> ";
?>
<div>
<input type="submit" value="Naruči" />
</div>
</form>
谢谢
解: 我决定使用javascript来获取数据,使用ajax发送数据,使用session来存储数据。 每个人都是
答案 0 :(得分:1)
只是为了澄清你的问题:
您希望在用户端修改您网站的某个状态,并且每当用户点击“下一页”时,您希望将值提交给服务器。
有多种方法,我会解决这个问题:
考虑使用Ajax(google for it),并将用户的选择立即发送到服务器。 好处:您将始终在服务器端进行所有更改,即使用户仅选择,也从不点击下一页。 缺点:您必须实施整个ajax事物。
为整个部分使用html表单,每当用户点击“下一页”时,您的字段(必须是表单的一部分)都会被提交。 好处:你不必做任何javascript。缺点:如果没有用户点击下一页而您必须重新构建您的html,则无法发送州
使用Cookie并使用javascript修改其值。 Cookie随每次请求一起发送到服务器。好处:您不必重新构建代码,只需添加一些小的JavaScript代码即可。缺点:您不能立即发送状态。
如果您能详细描述一下您的情况,我可以为您提供更详细的答案。
在评论中做出更详细的解释之后,你应该做同样的事情:
<form method="POST" action=".">
<input type="checkbox" name="vehicle" value="Bike"> I have a bike<br>
<input type="checkbox" name="vehicle" value="Car" checked="checked"> I have a car
<table> <!-- your data --> </table>
<input type="button" value="Previous Page" onClick="function() { form.action="previousPage.php"; form.submit(); }" />
<input type="button" value="Next Page" onClick="function() { form.action="nextPage.php"; form.submit(); }" />
</form>
您必须注意PHP代码以设置正确的checked="checked"
标志