2016-07-30 4 views
1

У меня есть HTML-формы, где люди выбрать для фильтрации результатов MySQL, примерHTML Form Выберите значение по умолчанию из PHP Echo _POST

<select name="display"> 
<option value="9999" selected>Display all results</option> 
<option value="10">10 results only</option> 
<option value="20">20 results only</option> 
<option value="50">50 results only</option> 
<option value="100">100 results only</option> 
</select> 

Но если люди выбирают позволяют сказать, что 50 результатов на страницу, после отправки формы Я хочу опционные 50 результатов только получить помечены как выбран как этот

<option value="50" selected>50 results only</option> 

вопрос в том, как это сделать с помощью PHP POST или GET из формы

+0

У вас слишком много тегов здесь для одной вещи. Кроме того, ответ прост; вы назначаете переменную массиву POST/GET и помещаете ее в свой запрос. в другом вопросе http://stackoverflow.com/questions/38668132/building-a-mysqli-query-with-order-by-and-per-page-to-show просто делайте то же самое; но используйте его для вашего LIMIT, * просто как пирог. * –

+0

отправьте свою полную форму. –

+0

вы отметили как mysql и mysqli и pdo, так что ваш вопрос неясен. Однако вы можете видеть, что я разместил ниже. это лучшее, что я могу предложить, учитывая то, что вы опубликовали. @Liberator –

ответ

2

Как я уже говорил в комментариях, назначить вари способный к массиву POST и установить его в вашем LIMIT в запросе.

// you can also use isset instead of empty here and GET instead of POST 
if(!empty($_POST['display'])) { 
    $limit = (int)$_POST['display']; // ensure the value is an integer 
} 

Затем поместите переменную $limit в запросе для LIMIT.

т.е .: (и как основной MySQL)

SELECT col1, col2, col3 FROM TABLE WHERE col_x = 'xxx' LIMIT $limit 

Вопрос хоть немного непонятно, так что не так много я еще могу добавить к этому.

Sidenote: LIMIT (with SELECT) принимает дополнительные параметры. То есть: LIMIT 0, 50

[LIMIT {[offset,] row_count | row_count OFFSET offset}] 

Edit:

"после отправки формы Я хочу вариант только 50 результатов, чтобы получить помеченный как выбран"

Для того, чтобы сохранить выбранное значение, использовать условный оператор в опциях выберите и проверьте, если оно равно к чему-то:

Sidenote: Это будет работать, только если весь ваш код находится внутри того же файла.

<?php 

    if(!empty($_POST['display'])) { 
     $limit = $_POST['display']; 
     $selected = 'selected'; 
    } 

?> 

<form action="" method="post"> 
    <select name="display"> 
    <option value="9999" <?php if(isset($selected) && $limit==9999) {echo $selected; } ?>>Display all results</option> 
    <option value="10" <?php if(isset($selected) && $limit==10) {echo $selected; } ?>>10 results only</option> 
    <option value="20" <?php if(isset($selected) && $limit==20){echo $selected; } ?>>20 results only</option> 
    <option value="50" <?php if(isset($selected) && $limit==50){echo $selected; } ?>>50 results only</option> 
    <option value="100" <?php if(isset($selected) && $limit==100){echo $selected; } ?>>100 results only</option> 
    </select> 

<input type="submit" value="submit"> 

</form> 

Вы можете добавить в остальную часть кода.

+0

OP: * "после отправки формы Я хочу, чтобы результат 50 был только отмечен как выбранный вот так: * - Уже поздно, и я довольно устал и не обратил на это внимания. –