|
|
|
| Создаю динамически чекбоксы в форме, затем передаю их в другой скрипт.
Как в новой форме получить массив из элементов чекбокс?
Ниже представлен код формы, откуда идет передача чекбоксов:
<body>
<?php
include ("menu_top.php");
// Соединение с базой данных
require_once ("config.php");
// Делается выборка из таблиц базы данных
$query_r = "SELECT r_model FROM r_models ORDER BY r_model";
$result_r = mysql_query ($query_r,$dbcon);
if(!$result_r) exit("<br>Error in $query_r : ". mysql_error());
$query_b = "SELECT b_model FROM b_models ORDER BY b_model";
$result_b = mysql_query ($query_b,$dbcon);
if(!$result_b) exit("<br>Error in $query_b : ". mysql_error());
$query_c = "SELECT c_model FROM c_models ORDER BY c_model";
$result_c = mysql_query ($query_c,$dbcon);
if(!$result_c) exit("<br>Error in $query_c : ". mysql_error());
?>
<div align="center" class="StyleForHeader"> <p> <br> </p> <p> Совместимое оборудование </p>
<p> </p>
</div>
<form action="r_b_c_insert.php" method="post" name="form">
<table width="26%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="55%" align="left" valign="baseline"><strong>Модель радиостанции</strong></td>
<td width="45%" align="left" valign="baseline">
<select name="r_model">
<?php
// Соединение с базой даных
require_once ("config.php");
$sql= "SELECT r_model FROM r_models ORDER BY r_model";
$res = mysql_query($sql, $dbcon);
if(!$res) exit("Error in $sql : ". mysql_error());
while( $row = mysql_fetch_assoc($res) )
echo "<option value =\"$row[r_model]\">".htmlspecialchars($row['r_model'])."</option>\r\n";
?>
</select>
</td>
</tr>
</table>
<p align="center" class="best"> </p>
<p align="center" class="best">Совместимое оборудование</p>
<table width="36%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="6%" align="left" valign="baseline"> </td>
<td width="49%" align="left" valign="baseline"><strong>Аккумуляторные батареи:</strong></td>
<td width="45%" align="left" valign="baseline"><strong>Зарядные устройства:</strong></td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline"> </td>
</tr>
<tr>
<td align="left" valign="baseline"> </td>
<td align="left" valign="baseline">
<?php
while($myrow_b = mysql_fetch_assoc($result_b))
{
echo "<input type='checkbox' name='b[]' value='".$myrow_b['b_model']."'>".$myrow_b['b_model']."<br>";
}
?>
</td>
<td align="left" valign="baseline">
<?php
while($myrow_c = mysql_fetch_assoc($result_c))
{
echo "<input type='checkbox' name='c[]' value='".$myrow_c['c_model']."'>".$myrow_c['c_model']."<br>";
};
?>
</td>
</tr>
</table>
<div align="center">
<p> </p>
<p>
<input name="submit" type="submit" value="Подтвердить" />
</p>
</div>
</form>
|
А так я пытаюсь получить их в новой форме, но не работает..
<?php
echo "TEST<br>";
if (isset($_POST['r_model']))
{
$r_model = $_POST['r_model'];
echo htmlspecialchars($r_model)."<br>";
}
if (isset($_POST['b']))
{
$b[]=$_POST['b'];
echo "<br>Where_is_my_array? = ".$b['b_model']."<br>";
};
echo count($b);
for ($a=0; $a<count($b); $a++)
{
echo $b[$a];
}
?>
|
| |
|
|
|
|
|
|
|
для: romu4-
(15.05.2009 в 01:55)
| | Вам уже говорили, а вы опять на те же грабли наступаете. На сервере будут приняты только те элементы формы, которые имеют имя. Где у вас элемент с именем r_model? Мало того, у вас этих "безымянных" элементов масса получается? И о какой новой форме речь? На стороне сервера нет никаких форм. | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 04:06)
| | Объясняю подробнее:
Есть некоторая форма на странице.
На ней элементы:
select (name "r_model") - элементы списка формируются динамически \ количество 1 ед. \
checkbox ( name "b[]" value "...") - формируются динамически \ количество ? ед. \
checkbox ( name "c[]"value "....") - формируются динамически \ количество ? ед. \
Submit - кнопка \ количество 1 ед. \
Пользователь выбирает в списке модель и затем отмечает checkbox'ами совместимое оборудование. После этого он нажимает кнопку и информация методом POST отправляется на другую страницу, на которой происходит обработка - формируется три SQL-запроса на добавление данных в таблицы БД. Данные добавляются , пишется сообщение "ОК!"
Так вот и задача у меня такая возникла: не могу эти два массива из элементов b[] и c[] вытащить из POST'а. То зациклится, то только только первый вытаскивается, то ничего не вытаскивается.
Помогите, чем можете. Тут мелочь такая, просто сутки не спал и никак не найду решения. Парюсь! | |
|
|
|
|
|
|
|
для: romu4-
(15.05.2009 в 06:52)
| | Извиняюсь, не заметил список (хотя просматривал несколько раз :)). Запрос будет отправлен скрипту указнному в атрибуте action формы, забудьте о выражениях "на другую страницу", "в другую форму". Вы ничего не делайте в скрипте обработчике, а просто примите форму и посмотрите принятое вот так: print_r($_POST). Что вы увидите в этом случае? Будут ли POST-данные иметь элементы с именами b[] и c[]? | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 07:00)
| | При print_r($_POST) пишется следующее :
Array ( [r_model] => Motorola GP280 [b] => Array ( [0] => FTN6574B [1] => NTN7144 [2] => NTN9009 ) [submit] => Подтвердить )
То есть массив есть в POST'е. Но как правильно оттуда получить его элементы?
Так не получается:
if (isset($_POST['b']))
{
$b[] = $_POST['b'];
}
echo count($b);
for ($a=0; $a<count($b); $a++)
{
echo $b[$a];
}
|
| |
|
|
|
|
|
|
|
для: romu4-
(15.05.2009 в 16:38)
| | Ну вы же видите теперь, что [b] => Array - это массив! А значит как нужно получать?
PS. $b[] = $_POST['b']; - выделенное жирным излишне. | |
|
|
|
|
|
|
|
для: sim5
(15.05.2009 в 16:46)
| | sim5, не поверите, но я три дня из-за этих [] парюсь.
Все сказывается малый опыт РНР-программирования (3недели).
Спасибо за поддержку. Удачи! | |
|
|
|
|
|
|
|
для: romu4-
(15.05.2009 в 16:59)
| | foreach ($_POST['b'] as $value) echo $value . "<br>"; | |
|
|
|
|
|
|
|
для: romu4-
(15.05.2009 в 16:38)
| | ну хотя бы так
<?php
if (isset($_POST['b']))
{
$c = count($_POST['b']);
echo $c . '<br>';
for ($a=0; $a<$c; $a++)
{
echo $b[$a];
}
?>
|
все из-за этого
непонятно чего. Вы собирались еще в 1 массив засунуть? | |
|
|
|
|
|
|
|
для: ddhvvn
(15.05.2009 в 16:47)
| | Такой вот я умник ;-))
Спасибо за совет. | |
|
|
|