2015-11-11 7 views
-1

У меня есть форма, чтобы выбрать некоторые элементы, используя метод GET, как:Получения значения из нескольких выбранного флажка

<form action="room_selected.php" method="get" id="formget" name="formget"> 
<input type="checkbox" id="room_id[]" name="room_id[]" value="1"> 
<input type="text" id="room_price[]" name="room_price[]" value="150000"> 

<input type="checkbox" id="room_id[]" name="room_id[]" value="2"> 
<input type="text" id="room_price[]" name="room_price[]" value="250000"> 

<input type="checkbox" id="room_id[]" name="room_id[]" value="3"> 
<input type="text" id="room_price[]" name="room_price[]" value="350000"> 

Если я выбираю checkbox содержит значение 1 и значение 3, в room_selected.php появляется только room 1 и room 3, включая price 150000 и price 350000.

я попробовать использовать for, но не работает, как:

<?php 
for ($i=0;$i<count($_GET['room_idi']);$i++) { 
echo $_GET['room_idi'][$i].$_GET['room_price'][$i]; 
} 
?> 
+1

Вы имеете в виду '$ _GET ['room_id']', а не '$ _GET ['room_idi']'? – Albzi

+0

Проблема с этим: '$ _GET' является массивом, но, например,' $ _GET ['pass'] 'является строкой, а не массивом и поэтому не может использоваться как один. Способ сделать это будет использовать вместо этого '$ _POST', тогда это можно использовать как массив в массиве –

+0

@Albzi yup, я имею в виду $ _GET ['room_id'] не $ _GET ['room_idi']. Спасибо –

ответ

0

Проблема здесь заключается в том, что, поскольку вы выбираете только два флажка, цикл for будет зацикливаться только дважды. Таким образом, страница PHP увидит два значения флажка и три значения текстового поля;

Вы могли бы попробовать что-то вроде этого;

<form action="room_selected.php" method="get" id="formget" name="formget"> 
<input type="checkbox" id="room_id[]" name="room_id[]" value="1"> 
<input type="text" id="room_price[]" name="room_price_1" value="150000"> 

<input type="checkbox" id="room_id[]" name="room_id[]" value="2"> 
<input type="text" id="room_price[]" name="room_price_2" value="250000"> 

<input type="checkbox" id="room_id[]" name="room_id[]" value="3"> 
<input type="text" id="room_price[]" name="room_price_2" value="350000"> 

<?php 

if (count($_GET['room_id']) > 0) { 
    foreach ($_GET['room_id'] as $roomId) { 
     $textFieldName = "room_price_" + $roomId; 

     echo $roomId . ' = ' . $_GET[$textFieldName]; 
    } 
} 

?> 
+0

Спасибо, это работает, но $ textFieldName = "room_price_" + $ roomId; должно быть $ textFieldName = "room_price _". $ roomId; Спасибо всем –

+0

Да, извините за ошибку. Радости переключения между Java и PHP – SheppardDigital

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