csv данные из формы

Ринат

Новичок
csv данные из формы

добрый день! есть функция, загоняет данные из формы в csv. в форме имеются сл поля, например,

***********
учреждение
email

участник1
имя (тип текстовое поле)
фамилия (тип текстовое поле)

участник 2
имя (тип текстовое поле)
фамилия (тип текстовое поле)

участник 3
имя (тип текстовое поле)
фамилия (тип текстовое поле)
************
задача, необходимо, чтобы при заполнении данных на 3 участников, в csv создавалось 3 записи
при этом 3 записи будут отличаться только по имени и фамилии участников соответсвенно

как реализовать
спасибо

-~{}~ 18.04.05 14:20:

пробовал делать так, тоже не пошло
итак php

$main_array = array(1=>array ('vorname1'=>$_POST['vorname1'], 'nachname1'=>$_POST['nachname1'], 'anrede1'=>$_POST['anrede1']),
2=>array ('vorname2'=>$_POST['vorname2'], 'nachname2'=>$_POST['nachname2'], 'anrede2'=>$_POST['anrede2']),
3=>array ('vorname3'=>$_POST['vorname3'], 'nachname3'=>$_POST['nachname3'], 'anrede3'=>$_POST['anrede3']));

// vorname = имя, nachname = фамилия, anrede = обращение

далее
if (isset ($_POST['vorname1']) && isset ($_POST['vorname2']) && isset ($_POST['vorname3']))
{
foreach ($main_array as $k=>$v)
{
save_to_csv_file ();

}
}

-~{}~ 18.04.05 14:50:

какой совет могли бы Вы дать? спасибо
 

Фанат

oncle terrible
Команда форума
мы бы дали совет сделать форму на одного участника.
 

Ринат

Новичок
спасибо, такая уже готова, просто действительно необходимо сделать на 3 и более (например) участников
 

Ринат

Новичок
да не мешает конечно никто, предположим полей много в форме (цель: не заполнять поля постоянно заново) , да и тогда можно выводить собщение об успешном заполнении и делать редирект на форму с сохранением значений ключевых полей и т.д.
но стоит необходимость сделать так, как я описал выше
спасибо
 

Фанат

oncle terrible
Команда форума
а, ну если есть необходимость.
это другое дело.
ну - делай, раз есть.
 

Ринат

Новичок
самому не получилось, спросил на форуме, как можно реализовать подобную задачу
спасибо!
 

Фанат

oncle terrible
Команда форума
но согласись - на форуме люди (лично я, к примеру) не видят смысла в твоей задаче. Я бы решал её так, как написал. Посвятить в подробности, известные только тебе, ты счёл нас недостойными. Ну так прочему ты хочешь, чтобы тебе решали задачу, которая имеет нелепые условия? Твоя задача - ты и решай.
Хочешь выпендриваться - объясни. Если это осмысленные требования - тебе подскажут обязательно. Или объяснят, что твои условия не имеют смысла.

Я логично рассуждаю?
 

Ринат

Новичок
секрета никакого в таких условия нет, при заполнении формы корпоративные клиенты желают заполнять форму один раз, так как данные из других полей действительны на несколько сотрудников, данные записываются в csv файл, файл после заполнения пересылается менеджеру, соответсвенно заполняя форму 3 раза, на email приходит в 3 раза больше сообщений, нежели при заполнеии в 1 раз. объективно говоря, причина - желание коллег + личный интерес, вот и вся аргументация
 

Фанат

oncle terrible
Команда форума
то есть, в форме есть постоянные поля, которые в единственном экземпляре, и поля, которые надо заполнять три раза? А пожно не три, а 1, к примеру. правильно?
 

Ринат

Новичок
да есть постоянные поля (действительные для всех сотрудников), и поля отражающие индивидуальные данные каждого сотрудника, то есть, заполняем форму 1 раз, и вызываем функцию N раз (в данном примере 3 раза), но передавая различные значения некотрых переменных (в данном случае имя, фамилию)
такая задача
 

Фанат

oncle terrible
Команда форума
ну, лично я бы сделал это через сессию.
Но тебе будет, наверное, сложно.
поэтому делай, как делал, просто вместо циклов напиши обработку своих переменных полей подряд - в столкик.
обработка 1
обработка 2
обработка 3
 

Ринат

Новичок
тут наверное попрошу пояснить,
в самой функции пишу
if (isset ($main_array[1]['vorname1']))
{
$nachname = $_POST['nachname1'];
$vorname = $_POST['vorname1'];
$anrede_arrayval = $anrede_array[$_POST['anrede1']];
if (($_POST['anrede1']=='1') || ($_POST['anrede1']=='3'))
{
$anrede_new = "Sehr geehrte ".$anrede_array[$_POST['anrede1']];
}
elseif (($_POST['anrede1']=='2') || ($_POST['anrede1'] == '4'))
{
$anrede_new = "Sehr geehrter ".$anrede_array[$_POST['anrede1']];
}
}

тоже самое для vorname2 nachname2 (и 3 соответственно, то есть для полей, принадлежащих сотруднику 2 или 3)
что подразумевается под обработкой, не делать же 3 разные функции (соответственно с 3 видами различающихся переменных)
прошу прошения за тормоз, но правда хочется разобраться

-~{}~ 18.04.05 16:26:

и все же почему не работает цикл,
$main_array = array(1=>array ('vorname1'=>$_POST['vorname1'], 'nachname1'=>$_POST['nachname1'], 'anrede1'=>$_POST['anrede1']),
2=>array ('vorname2'=>$_POST['vorname2'], 'nachname2'=>$_POST['nachname2'], 'anrede2'=>$_POST['anrede2']),
3=>array ('vorname3'=>$_POST['vorname3'], 'nachname3'=>$_POST['nachname3'], 'anrede3'=>$_POST['anrede3']));

if (isset ($_POST['vorname1']) && isset ($_POST['vorname2']) && isset ($_POST['vorname3']))
{
foreach ($main_array as $k=>$v)
{
save_to_csv_file ();

}
}
получаю 1 запись, а не 3 в файле, и последнюю, в функции стоит обработка переменных имени и фамилии

-~{}~ 18.04.05 16:37:

ок, как понимаю проблема у меня с логикой, как можно подойти к рещению этой проблемы, и какая логика реализации через сессии, спасибо
 

Фанат

oncle terrible
Команда форума
а ты не думал, что проблема в функции save_to_csv_file ?
почему бы не попробовать выводить на экран?
 

Ринат

Новичок
да думал конечно, просмотрел функцию, там идет проверка на наличие csv файла, если есть, то записывает данные в конец, то есть я думал, что в цикле, функция будет вызвана 3 раза, соответсвенно, данные будут записаны каждый раз в конец (очевидно за исключением первого запуска)
в любом случае спасибо
 

Фанат

oncle terrible
Команда форума
вот интересно.
иногда мне кажется, что я общаюсь не на русскоязычном форуме, а на суахилиязычным.
настолько люди не понимают, что я пишу.

вот я пишу:
почему бы не попробовать выводить на экран?
мне отвечают:
просмотрел функцию
я одного не понимаю - как у этих людей вообще хоть что-то работает
 

Мутник

Новичок
PHP:
$_POST['vorname']) ;
немец?

а вообще, что тебе мешает делать :

<input type="text" value="" name="name[]">
<input type="text" value="" name="name[]">
<input type="text" value="" name="name[]">
<input type="text" value="" name="name[]">
<input type="text" value="" name="name[]">
<input type="text" value="" name="name[]">

а дальше:

PHP:
for ($i=0; $i<sizeof($_POST["name"]); $i++){
  $vorname = $_POST["name"][$i];
  ......... your action
}
и делаешь одно и то же столько раз, сколько у тебя разных имен. А в итоге всю инфу кидаешь одним е-майлом... Где проблема? :)
 

Ринат

Новичок
нет нет сейчас так и делаю, результат сообщу

"почему бы не попробовать выводить на экран? "

-~{}~ 19.04.05 09:37:

нет не немец. но из германии
 

Фанат

oncle terrible
Команда форума
собственно, все рекомендации по исправлению ошибок изложены вот здесь: PHP FAQ: Пособие по отладке PHP скриптов
однако люди, почему-то, читают его не целиком, а только первые несколько строчек. Поэтому в большинстве случаев текст оказывается для них бесполезен
 
Сверху