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:

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

Я логично рассуждаю?
 
секрета никакого в таких условия нет, при заполнении формы корпоративные клиенты желают заполнять форму один раз, так как данные из других полей действительны на несколько сотрудников, данные записываются в csv файл, файл после заполнения пересылается менеджеру, соответсвенно заполняя форму 3 раза, на email приходит в 3 раза больше сообщений, нежели при заполнеии в 1 раз. объективно говоря, причина - желание коллег + личный интерес, вот и вся аргументация
 
то есть, в форме есть постоянные поля, которые в единственном экземпляре, и поля, которые надо заполнять три раза? А пожно не три, а 1, к примеру. правильно?
 
да есть постоянные поля (действительные для всех сотрудников), и поля отражающие индивидуальные данные каждого сотрудника, то есть, заполняем форму 1 раз, и вызываем функцию N раз (в данном примере 3 раза), но передавая различные значения некотрых переменных (в данном случае имя, фамилию)
такая задача
 
ну, лично я бы сделал это через сессию.
Но тебе будет, наверное, сложно.
поэтому делай, как делал, просто вместо циклов напиши обработку своих переменных полей подряд - в столкик.
обработка 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:

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

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

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