2013-11-29 3 views
0

Мне очень жаль, если что-то об этом уже есть, но я не смог ее найти. Надеюсь, вы поймете меня и мою глупую проблему.Кнопка включения/выключения DESC

Я вставляю данные из таблицы базы данных MySQL в мои страницы, используя $query_sel = "SELECT * FROM $table ORDER BY $id $DESCswitch";, и я хочу, чтобы люди меняли порядок заказа, нажимая на кнопку. Иногда они просто хотят заказать от самого низкого до самого высокого, а иногда они хотят заказать от самого высокого до самого низкого.

Я хочу сделать кнопку (без формы с переключателями или флажком, просто кнопкой), и с помощью этой кнопки измените переменную $DESCswitch с "" на "DESC" и обратно, используя ту же кнопку.

Я знаю, что должно быть что-то вроде $DESCswitch = $_POST['DESCswitch']; до этого $query_sel = "SELECT * FROM $table ORDER BY $id $DESCswitch";, но я понятия не имею, как получить что-то в POST без использования формы.

Я знаю, что не очень хорошо это объяснил, но может ли кто-нибудь мне помочь?

примечание: страница может быть перезагружена после нажатия этой кнопки, но я не могу использовать метод GET из соображений безопасности, и именно поэтому я точно использую метод POST.

+0

POST абсолютно безопаснее, чем GET. Для этого потребуется форма, но она не должна выглядеть как форма. –

+0

В чем проблема сэр? у вас есть два способа: 1) подготовить форму с помощью кнопки, которая на submit задает $ DESCswitch для ASC или DESC. 2) используйте кнопку и через AJAX выполните запрос и перезагрузите таблицу. – briosheje

+0

@MichaelBerkowski GET не подходит для меня, потому что некоторые люди могут попытаться изменить его по-своему (в адресной строке, и это то, чего я не хочу) – user3043260

ответ

2

Я бы сделал что-то подобное.

<form method="POST"><button type="submit" name="DESCSWITCH" value="DESC">DESC</button></form> 
<form method="POST"><button type="submit" name="DESCSWITCH" value="ASC">ASC</button></form> 

Не забудьте проверить значение поля, чтобы предотвратить инъекции SQL.

<?php 
if (!in_array($_POST['DESCSWITCH'], array('ASC','DESC'))) 
    $_POST['DESCSWITCH'] = 'DESC'; 
+0

Не требуется параметр действия? – briosheje

+0

Действие @briosheje по умолчанию является текущей страницей –