Intereting Posts
Как отправить сообщение POST в Facebook через Graph API с помощью PHP PHP-Сортировка массива на основе другого массива? Оберните CSV-значения, сгенерированные PHP fputcsv (), с помощью "" Как заставить PHP использовать строки для ключей массива? выполнять несколько запросов сразу в laravel Как выполнить правильную сдвиг без изменений в PHP? PHP включает один раз Как связать элемент XML с префиксом пространства имен с помощью оператора объекта? Как получить изображения из папки по одному и отобразить на странице с помощью PHP PHP: escape filename как linux делает CakePHP – Как разрешить доступ к определенным страницам без проверки подлинности Проблемы с PHP при попытке создать большой массив Глобальные переменные, обращающиеся к $ var вместо $ _GET Laravel – BindingResolutionExceptionUnresolvable урегулирование зависимостей ] в классе GuzzleHttp \ Psr7 \ Request Как заменить переменную в запросе get в PHP?

Как отличить два списка выбора с одинаковым именем

Для системы, которую я создаю, мне нужно увидеть, какие параметры вошли (с запросом POST) из первого списка и какие параметры вошли во второй список.

<form method="post"> <select name="cars[]" multiple> <option selected>test</option> <option selected>test2</option> <option>test3</option> <option>test4</option> </select> <select name="cars[]" multiple> <option>hai</option> <option>hai2</option> <option selected>hai3</option> <option selected>hai4</option> </select> <input type="submit"> </form> 

Теперь они приходят так:

 Array ( [cars] => Array ( [0] => test [1] => test2 [2] => hai3 [3] => hai4 ) ) 

На самом деле я хочу получить опции «testX», кроме опций «haiX». Теперь я не вижу, что произошло из первого списка и со второго. Конечно, я знаю, что я мог бы также сделать имя второго списка отличным от имени первого списка, но это не из уважительных причин, что я хочу сделать это вот так.

Related of "Как отличить два списка выбора с одинаковым именем"

Разделите категории, создав многомерный массив в форме:

 <form method="post"> <select name="cars[0][]" multiple> <option selected>test</option> <option selected>test2</option> <option>test3</option> <option>test4</option> </select> <select name="cars[1][]" multiple> <option>hai</option> <option>hai2</option> <option selected>hai3</option> <option selected>hai4</option> </select> <input type="submit"> </form> 

И затем прочел это следующим образом: $ _POST ['cars'] [0] для первого набора и $ _POST ['cars'] [1] для второго

Это можно сделать, используя скрытое поле (ввод) для каждого списка select. Вы можете назвать их так, как вы хотите, и вот как это знать.

Вы должны быть в состоянии получить их следующим образом:

$_POST['cars'][0] относится к набору «тест»

$_POST['cars'][1] относится к набору «hai»

Я сделал это:

 <?php if (isset($_POST['cars'])) { $test = array(); $hai = array(); $lista = $_POST['cars']; foreach ($lista as $key ) { if (substr($key,0,1)=="t") { $test[] = $key; } else { $hai[] = $key; } } } var_dump($test); var_dump($hai); ?> <form method="post"> <select name="cars[]" multiple> <option selected>test</option> <option selected>test2</option> <option>test3</option> <option>test4</option> </select> <select name="cars[]" multiple> <option>hai</option> <option>hai2</option> <option selected>hai3</option> <option selected>hai4</option> </select> <input type="submit"> </form> 

Проверено на локальном хосте.

Салудос 🙂