2015-03-15 3 views
0

мне нужно создать форму для вывода ниже $ фильтров массива:Построить форму с ассоциативным именем массива

Array 
(
    [0] => Array 
     (
      [filterType] => hotelStar 
      [filterValue] => 3 
     ) 

    [1] => Array 
     (
      [filterType] => hotelStar 
      [filterValue] => 5 
     ) 

    [2] => Array 
     (
      [filterType] => hotelStar 
      [filterValue] => 4 
     ) 

    [3] => Array 
     (
      [filterType] => resultLimit 
      [filterValue] => 2000 
     ) 

) 

Форма, которую я имею

<form action="output.php" method="get"> 
<input type="radio" name="filterType[]" value="[hotelStar]3,4,5"> 
<input type="radio" name="filterType[]" value="[hotelStar]3"> 
<input type="radio" name="filterType[]" value="[hotelStar]4"> 
<input type="radio" name="filterType[]" value="[hotelStar]5"> 
<input type="hidden" name="filterType[]" value="[resultLimit]2000"> 
<button type="submit">Submit</button> 
</form> 

Вывод, который я получаю это:

Array 
(
    [filterType] => Array 
     (
      [0] => [hotelStar]3 
      [1] => [hotelStar]4 
      [2] => [hotelStar]5 
      [3] => [resultLimit]2000 
     ) 

) 

Но выход не является ожидаемым. Я пробовал почти все возможности, но я не могу найти рабочий.

+0

Покажите нам свои попытки! – Rizier123

+0

Пожалуйста, опубликуйте результат, который вы получите, хотя это неправильно. – siddhesh

+0

Индекс массива, который вы хотите, должен быть частью полей формы _name_, а не _value_. – CBroe

ответ

0

Моя попытка будет следующее:

Назовите элементы в вашей форме нормально, например.

<form action="<?$_SERVER['PHP_SELF']?>" method="get"> 
<input type="radio" name="hotelStar3" value="3"> 
<input type="radio" name="hotelStar4" value="4"> 
<input type="radio" name="hotelStar5" value="5"> 
<input type="hidden" name="resultLimit" value="2000"> 
<button type="submit" name = "submit" >Submit</button> 
</form> 

В вашем output.php присвойте значения массиву.

if(isset($_GET['submit'])){ 
    $filters = array(
    array('filterType' => 'hotelStars', 'filterValue' => $_GET['hotelStars3']), 
    array('filterType' => 'hotelStars', 'filterValue' => $_GET['hotelStars4']), 
    array('filterType' => 'hotelStars', 'filterValue' => $_GET['hotelStars5']), 
    array('filterType' => 'resultLimit', 'filterValue' => $_GET['resultLimit'])); 
    print_r($filters); 
+0

Я получаю синтаксическую ошибку, – em0tic0n

+0

@ em0tic0n Извините, забыли скобки. Ну вот. – manniL

+0

Я нахожусь, но все равно print_r фильтра пуст. – em0tic0n

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