2013-03-12 3 views
1

У меня есть таблица с информацией о книгах, и пользователь должен иметь возможность сортировать таблицу по своему усмотрению.Передайте несколько аргументов по форме

Есть три варианта:

Author, Title, Edition 

все они могут восходящем или нисходящем порядке.

Но нет такого заказа. Пользователь может выбрать: Заголовок ASC и издание DESC или Автор DESC и издание ASC и название DESC или даже просто Издание ASC.

Вопрос есть. Какой способ лучше создать в PHP? По формам? Массивы? Как я могу предположить, что эта информация будет такой?

{"Author" => "Desc", "Title" => "Asc"} 

У меня уже есть сценарий сортировки, мне просто нужно понять, как я могу управлять настраиваемой информацией, подобной этому. Я думаю, что массивы будут лучше, но как я могу пройти через Forms?

Я пытался выяснить, но все решения, хотя и уродливые и имеют плохой код.

Вот картина службы только для тех, кто не понимал:

enter image description here

Вот в основном код все до сих пор:

+0

Я думаю, что это могло помочь вам с вашими формами http://stackoverflow.com/questions/3887321/passing- arguments-using-drupal-get-form – Mingebag

+0

Если вы показываете код, даже уродливый код, это может помочь больше, чем изображение. Вы хотите, чтобы выпадающие списки «сортировать по» и «направление»? –

+0

@fab, я отредактировал с базой всего кода до сих пор. – Alexandre

ответ

1

Вместо «firstRule» и «firstRuleOrder» выпадающие списки должны быть названы «правило [0]» и «ruleOrder [0]». Затем дублируйте их с увеличением индексов массива (вы можете сделать это с помощью JavaScript или просто показать столько, сколько есть столбцов).

Чтобы построить свой вызов в array_multisort, вам нужно будет перебрать $_POST['rule'] и $_POST['ruleOrder'] и создать массив аргументов. Фактический вызов функции затем происходит с call_user_func_array (это необходимо, потому что вы не знаете количество аргументов заранее)

Смежные вопросы