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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Несколько форм с одним submit!

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: sim5   (23.10.2007 в 13:12)   письмо автору
 
   для: Front   (23.10.2007 в 12:31)
 

Это многомерный. А вот как можно его разобрать:


<?
$send 
= Array('id_satisfy' => 3'id_answer' => Array(=> 56=> 72), 'id_question' => Array(=> 23=> 29));
foreach (
$send as $key1 => $val1) {
 if(!
is_array($val1)) echo $key1.' - '.$val1.'<BR>';
  else {
   echo 
'&nbsp;&nbsp;'.$key1.'<BR>';
      foreach (
$val1 as $key2 => $val2) {
       echo 
'&nbsp;&nbsp;&nbsp;'.$key2.' - '.$val2.'<BR>';
    }
  }
}
?>

Но я несколько не понимаю, если у вас форма - это элементы объедененные в группы, по id записи в базе, например, и их имена отражают этот id, то нет проблем получить его и произвести запись. Как - я раньше приводил пример, можете иначе, тем более у вас эти id кругом прописаны, в чем проблема у вас, я так и не понял.

   
 
 автор: Front   (23.10.2007 в 12:31)   письмо автору
 
   для: sim5   (23.10.2007 в 11:25)
 

После того как я посылаю данные из формы в обработчик приходит массив:


Array ( [id_satisfy] => 3 [id_answer] => Array ( [0] => 56 [1] => 72 ) [id_question] => Array ( [0] => 23 [1] => 29 ) )


Разве это не двумерный массив?

   
 
 автор: sim5   (23.10.2007 в 11:25)   письмо автору
 
   для: Front   (23.10.2007 в 11:22)
 

Что-то по форме, вами представленной, не видно, что это двумерный массив.

   
 
 автор: Front   (23.10.2007 в 11:22)   письмо автору
 
   для: sim5   (23.10.2007 в 11:17)
 

Проблема записи в базу данных двумерного массива

   
 
 автор: sim5   (23.10.2007 в 11:17)   письмо автору
 
   для: Front   (23.10.2007 в 10:27)
 

Если у вас ВСЕ кнопки, это кнопки с зависимой фиксацией, то вам вообще ничего "резать" не надо. Это нужно было бы, если бы из групп кнопок выделить нужное. Так что $vars = get_defined_vars(); и сопутсвующее можно выбросить. Имена кнопок в этом случае роли не играют, лишь бы это был массив. У вас ID записано как значение кнопки, если это ID определяет номер записи в базе, то в чем проблема?

   
 
 автор: Front   (23.10.2007 в 10:27)   письмо автору
 
   для: sim5   (22.10.2007 в 16:55)
 

//достаточно обрезать у имени id_answer_

А зачем их обрезать если у них имена одинаковые, они же имеют зависимую Фиксанцию.

Получил я все переменные:
$vars = get_defined_vars(); в виде двухмерного массива.

При этом код я изменил следующим образом:


echo "<td><input type='text' name='id_question[]' value='$res_question[id]'></td>";


У меня просто к определенному вопросу по id привязан определенный ответ, а сам вопрос привязан к номеру анкетирования или голосования!

А как мне теперь записать это все в базу данных?

   
 
 автор: sim5   (22.10.2007 в 16:55)   письмо автору
 
   для: Front   (22.10.2007 в 16:30)
 


<?
$vars 
get_defined_vars(); //массив всех определённых переменных.
foreach ($vars["_POST"] as $key => $val) {
//здесь получаете все что вам надо - это будут имена
//кнопок формы, виделить которые из массива просто
//достаточно обрезать у имени id_answer_
//и вы получите id (номер кнопки)
//здесть можете сформировать строки запроса к базе,
//а вне цикла вставить их
//можете в цикле вставлять 
}

Как должны называться кнопки, зависит от того, какие вам нужны. Если имена радиокнопок одинаковы, то они имеют зависимую фиксацию - можно выбрать только одну из них, и соотвественно, если имена кнопок разные, можно выбрать много радио кнопок.

   
 
 автор: Front   (22.10.2007 в 16:30)   письмо автору
 
   для: sim5   (22.10.2007 в 16:27)
 

<?
foreach ($vars["_POST"] as $key => $val) {
//здесь можно получить имя кнопики принадлежащей какой либо группе и т.п.
//следовательно значение группы и пр.
{

Уже при записе в базу данных?

И ПРи этом должно быть
name='id_answer[]._.$res_answer[id]'

или name='id_answer[]'

   
 
 автор: sim5   (22.10.2007 в 16:27)   письмо автору
 
   для: Front   (22.10.2007 в 16:18)
 

Ну я же вас спрашивал - у вас какие кнопки должны быть независимы или зависимы? Если зависимы (то есть можно нажать только одну), то имена у таких конопок должны быть одинаковы: id_answer[]. Если в одной форме у вас должно быть несколько групп кнопок с зависимой фиксацией, то именуйте их соответственно:
'id_answer_55[]
'id_answer_55[]
'id_answer_56[]
'id_answer_56[]
Тогда вытащить все можно в цикле:


<?
foreach ($vars["_POST"] as $key => $val)  {
//здесь можно получить имя кнопики принадлежащей какой либо группе и т.п.
//следовательно значение группы и пр.
{

   
 
 автор: Front   (22.10.2007 в 16:18)   письмо автору
 
   для: sim5   (22.10.2007 в 16:12)
 


echo "<td><input type='$try' id='$res_answer[id]' name='id_answer[]._.$res_answer[id]' value=".$res_answer["id"]." ></td>"; 

При таком коде в базу он пишет, все правильно. Но в форме я могу выделить в одной форме несколько radio - а по определению это неправильно!

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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