Вот скрипт:
read_controller.php
$i = 1;
$count = $POST['value1'];
$row = '<form action="" method="post">';
$cont = getTpl_admin('group/form_addgroup');
while($i <= $count)
{
$post1 = 'form[value'. $i .']';
$row .= eval('?>' . $cont . '<?php ');
$i++;
}
$row .= '<input name="ok1" type="submit" value="Создать группу" />
</form>';
Вывожу все что в переменной $row при значении $POST['value1'] = 3.
<p>Введите название группы 1 курса:
<input name="form[value1]" type="text" size="10" /></p>
<p>Введите название группы 2 курса:
<input name="form[value2]" type="text" size="10" /></p>
<p>Введите название группы 3 курса:
<input name="form[value3]" type="text" size="10" /></p>
<form action="" method="post">
<input name="ok1" type="submit" value="Создать группу" />
</form>
Видно что нормальной формы не получилось. Вот эта строчка должна быть чуть выше:
<form action="" method="post">
P.S.:
1) функция getTpl_admin - это просто функция чтения шаблона
function getTpl_admin($tpl)
{
if(file_exists(IRB_ROOT .'admin/skins/tpl/'. $tpl .'.tpl'))
return file_get_contents(IRB_ROOT .'admin/skins/tpl/'. $tpl .'.tpl');
else
die('The template <b>'. $tpl .'.tpl</b> is absent in the specification');
}
2) сам шаблон form_addgroup.tpl вот:
<p>Введите название группы <?php echo $i; ?> курса:
<input name="<?php echo $post1; ?>" type="text" size="10" /></p>
Объясните, что я сделал не так?
Спустя 3 минуты, 23 секунды (16.08.2011 - 13:46) neadekvat написал(а):
$i = 1;
$count = $POST['value1'];
$row = null;
$cont = getTpl_admin('group/form_addgroup');
while($i <= $count)
{
$post1 = 'form[value'. $i .']';
$row .= eval('?>' . $cont . '<?php ');
$i++;
}
$row = '<form action="" method="post">'
. $row
. '<input name="ok1" type="submit" value="Создать группу" />
</form>';
Спустя 7 минут, 7 секунд (16.08.2011 - 13:53) foxiSfox написал(а):
Цитата (neadekvat @ 16.08.2011 - 10:46) |
$i = 1; |
В принципе написано тоже самое, следовательно и ошибка та же. Но по идее ведь правильно, да? Если правильно, то скажите. Тогда пойду искать ошибку, не знаю даже где!
Спустя 7 минут, 44 секунды (16.08.2011 - 14:01) neadekvat написал(а):
Цитата (foxiSfox @ 16.08.2011 - 14:53) |
В принципе написано тоже самое, следовательно и ошибка та же. |
С фига ли? Не может с моим кодом form оказаться ниже. Если так - значит, уже браузер борзеет и не то показывает. Не знаю, как с браузером, а firebug порой делат что хочет с html'ом.
А так - да, у тебя верно и тоже должно работать корректно. Если ты только весь код показал. А то там еще какая-нибудь буферизация используется, а ты ее удалил, посчитав не важным элементом..
Спустя 1 час, 24 минуты, 16 секунд (16.08.2011 - 15:25) foxiSfox написал(а):
meadekvat спасибо. Но не мог бы объяснить как буферизация может повлиять на это, ну хоть на примере. Какая разница между тем, что я писал выше, и тем что написано ниже
С использованием этого кода, проблема решилась:
С использованием этого кода, проблема решилась:
$i = 1;
$count = $POST['value1'];
$row = '<form action="" method="post">';
$cont = getTpl_admin('group/form_addgroup');
while($i <= $count)
{
$post1 = 'form[value'. $i .']';
ob_start();
eval('?>' . $cont . '<?php ');
$cont1 = ob_get_contents();
ob_end_clean();
$row .= $cont1;
$i++;
}
$row.= '<input name="ok1" type="submit" value="Создать группу" />
</form>';
Спустя 22 минуты, 18 секунд (16.08.2011 - 15:47) neadekvat написал(а):
В данном случаи - никакой.
Разве что код в буферизации выполняется несколько опосредованно от другого кода, в отличие от первого примера.
Разве что код в буферизации выполняется несколько опосредованно от другого кода, в отличие от первого примера.