Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Приём данных, переданных методом POST
 
 автор: Gandzas   (26.11.2007 в 18:22)   письмо автору
 
 

Запуталась((
форма:

<form action="1.php" method="post">
<?php
...
$vopros=5;
for(
$i =0$i $vopros$i ++) 
  { 
echo 
"Вопрос № ".($i+1)."<textarea name='vopros".($i+1)."'></textarea></td>"
}
...
?>


Как в обработчике принять методом POST значения name?


echo "<br>Вопрос № ".$_POST['vopros1'];

работает. Не получается заменить "1" на ($i+1)

   
 
 автор: Axxil   (26.11.2007 в 18:48)   письмо автору
 
   для: Gandzas   (26.11.2007 в 18:22)
 

в массив поместите вопросы:

<form action="1.php" method="post"> 
<?php 
... 
$vopros=5
for(
$i =0$i $vopros$i ++)  
  {  
echo 
"Вопрос № ".($i+1)."<textarea name='vopros[]'></textarea></td>";  

... 
?> 

   
 
 автор: Gandzas   (26.11.2007 в 19:00)   письмо автору
 
   для: Axxil   (26.11.2007 в 18:48)
 

Поместила. А извлекать как?

   
 
 автор: Gandzas   (26.11.2007 в 19:02)   письмо автору
 
   для: Gandzas   (26.11.2007 в 19:00)
 


for($i =0; $i < $vopros; $i ++)   
  {   
echo "<br>Вопрос № ".$_POST['vopros'][$i];   


Так?

   
 
 автор: Axxil   (26.11.2007 в 19:05)   письмо автору
 
   для: Gandzas   (26.11.2007 в 19:02)
 

ага
вообще смотреть структуру любого массива удобно с помощью print_r
<?
  
echo "<pre>";
  
print_r($_POST);
?>

всё наглядно
если вместо print_r использовать var_dump то будут показаны и типы элементов массива

   
 
 автор: Gandzas   (26.11.2007 в 19:22)   письмо автору
 
   для: Axxil   (26.11.2007 в 19:05)
 

Супер, спасибо.

Но, мне нужно дальше все значения записать в БД. И с динамическими переменными опять не могу справиться.


...
<table>
<?php
$vopros
=$_POST['kolvo_vopros']; // получаем с предыдущей страницы
$otvet=$_POST['kolvo_otvet']; // получаем с предыдущей страницы

for($i =0$i $vopros$i ++) 
  { 
echo 
"<tr><td align=center><b>Вопрос № ".($i+1)."</b> <br>(осталось&nbsp;&nbsp; 
<input type=text  id="
.($i+1)." size=2 style='border-color : #ffffff; color : #03176c; font-size : 7pt; background-color : #ffffff;' 
value=250>&nbsp;символов)<br><textarea name='vopros[]' rows=4  cols=20  onChange=maxlength_lang(this) 
onKeyUp=maxlength_lang(this) 
onKeyDown=maxlength_lang(this) 
onClick=maxlength_lang(this) 
onKeyPress=maxlength_lang(this)
onFocus= 'maxlength=250;outtext_id="
.($i+1)."'></textarea></td>"

for(
$j =0$j $otvet$j ++) 
{
echo 
"<td> <b>Ответ № ".($j+1)." к вопросу ".($i+1)."</b> <br>(осталось&nbsp;&nbsp; 
<input type=text  id="
.($j+1)." size=2 style='border-color : #ffffff; color : #03176c; font-size : 7pt; background-color : #ffffff;' 
value=250>&nbsp;символов)<br><textarea name='otvet"
.($j+1)."_v".($i+1)."' rows=4  cols=20  onChange=maxlength_lang(this) 
onKeyUp=maxlength_lang(this) 
onKeyDown=maxlength_lang(this) 
onClick=maxlength_lang(this) 
onKeyPress=maxlength_lang(this)
onFocus= 'maxlength=250;outtext_id="
.($j+1)."'></textarea></td>";
}
  }
echo 
"</tr>"
?>
</table>
...

Как быть здесь?

name='otvet".($j+1)."_v".($i+1)."' 

   
 
 автор: Axxil   (26.11.2007 в 22:31)   письмо автору
 
   для: Gandzas   (26.11.2007 в 19:22)
 

Ну сделайте двумерный массив :)
первый индекс массива - $i - номер вопроса
второй - $j - номер ответа

name='otvet[".($i+1)."][".($j+1)."]' 


Получаете упорядоченную структуру, которую легко занести в базу.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования