Я пытаюсь разрешить пользователям сортировать запросы mysql на основе имени, цены и т. Д. Этот выпадающий дает им возможность сделать это, он изменяет предложение «ORDER BY» на основе того, что пользователь выбирает. Это 3 утра здесь, и я просто не могу обнаружить ошибку:Что случилось с моим кодом?
<?php
$sortBy = $_POST['sortBy'];
if ($sortBy) {
$priceLowToHigh = $_POST['price-low-to-high'];
$priceHighToLow = $_POST['price-high-to-low'];
$dateMostRecent = $_POST['date-most-recent'];
$dateOldest = $_POST['date-oldest'];
$alphabeticalOrder = $_POST['alphabetical-order'];
if ($priceLowToHigh) {
$sortOrder = "price ASC";
} elseif ($priceHighToLow) {
$sortOrder = "price DESC";
} elseif ($dateMostRecent) {
$sortOrder = "date DESC";
} elseif ($dateOldest) {
$sortOrder = "date ASC";
} elseif ($alphabeticalOrder) {
$sortOrder = "name ASC";
}
} else {
$sortOrder = "date DESC";
}
?>
<form action="" method="post">
<select name="sortBy" onchange="this.form.submit()">
<option>Sort By</option>
<option value="price-low-to-high">Price (low to high)</option>
<option value="price-high-to-low">Price (high to low)</option>
<option value="date-most-recent">Date (most recent)</option>
<option value="date-oldest">Date (oldest)</option>
<option value="alphabetical-order">Alphabetical Order</option>
</select>
</form>
позже на предложения ORDER BY используется так:
$query = mysql_query("SELECT * FROM products WHERE category = $categoryId ORDER BY $sortOrder");
Не должен ли тег формы иметь значение для действия? Как и название текущей страницы ... Где POST? –
Не обязательно, поскольку по умолчанию будет отображаться текущая страница. – spinon