【发布时间】:2015-07-27 00:39:19
【问题描述】:
我在更改要显示的图像数量的逻辑时遇到了一些麻烦。
- 无法选择第一个选项 (5)。
- Selected 选项始终为 10。(可能与 if 语句有关)if 语句的想法是在第一次显示页面时默认一个值。我已经尝试了 selected 属性,但这不起作用,因为表单是一个 on-change 事件。
- 最后,分页错误:如果我成功更改代码以正确显示图像数量,则分页链接会混乱。
echo '<form method="post">
<select name="displayAmount" onchange="this.form.submit();">
<option>5</option>
<option>10</option>
<option>15</option>
<option>20</option>
<option>25</option>
</select>';
if (isset($_GET['$selected'])) {
$selected = $_POST['displayAmount'];
} else {
$selected = 10;
}
echo '</form>';
$con = mysqli_connect($theDb, $usr, $pass, "images");
mysqli_select_db($con, "images");
if (isset($_GET["page"])) {
$page = $_GET["page"];
} else {
$page = 1;
}
$start_from = ($page - 1) * $selected;
$query = "SELECT * FROM Greeting_Cards LIMIT $start_from, $selected";
$result = mysqli_query($con, $query);
$images = array();
while ($row = mysqli_fetch_assoc($result)) {
$images[] = $row['image'];
//store raw image
}
echo '<div id ="gallery">';
foreach ($images as $image) {
$origImage = $image;
$image = WideImage::loadFromString($image) -> resize(250, 250);
//image resizing here
echo '<a href="data:image/jpeg;base64,' . base64_encode($origImage) . '" data-lightbox="roadtrip"> <img id="database" class="fancybox" src="data:image/jpeg;base64,' . base64_encode($image) . '" /><a/>';
}
echo '</div>';
$query = "SELECT COUNT(image) FROM Greeting_Cards";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_row($result);
$total_images = $row[0];
$total_pages = ceil($total_images / $selected);
for ($i = 1; $i <= $total_pages; $i++) {
echo "<a id='paginations' href='greetingcards.php?page=" . $i . "'>" . $i . "</a> ";
}
【问题讨论】:
-
如果您不“获取”一个变量值并为表单发送 POST,这不是 GET 吗?
-
$_GET['$selected'] vs $_POST['displayAmount'] 到底是什么?
-
有两组我使用get和posts。所以第一组分别是get和post;因为您想查看 $selected 是否已设置为数字。如果它已将其设置为表单中的数字,则 POST。第二组都是 GET,具有相同的想法,因为 $page 是一个变量。
-
对你来说可能是有道理的——我不知道你在说什么。
标签: php html pagination