Для системы, которую я создаю, мне нужно увидеть, какие параметры вошли (с запросом 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». Теперь я не вижу, что произошло из первого списка и со второго. Конечно, я знаю, что я мог бы также сделать имя второго списка отличным от имени первого списка, но это не из уважительных причин, что я хочу сделать это вот так.
Разделите категории, создав многомерный массив в форме:
<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>
Проверено на локальном хосте.
Салудос 🙂