@ikramer

Как сделать вывод данных из формы обратной связи в таблицу?

Есть простой сайт (noSQL, т.е. без БД) со сложной формой обратной связи на php. Эта форма -- технологическая карта с множеством полей ввода с возможностью прикреплять файлы.

Данные приходят на почту в виде


Наименование поля1: значение1
Наименование поля2: значение2
Наименование поля3: значение3
Наименование поля4: значение4


Нужно, чтобы данные приходили в виде таблицы. Или подставлялись в некую таблицу, которая где-то сохранялась бы.
Подскажите, в какую сторону копать?

Ниже кусок, формирующий письмо. Могу выложить весь код, но он слишком объемный.

$company = $_POST['company']; // req

    $name = $_POST['name']; // req

    $phone = $_POST['phone']; // req
 
    $date = $_POST['date']; // req
 
    $s_date = $_POST['s_date'];
 
    $delivery = $_POST['delivery'];
 
    $email_from = $_POST['email']; // req

    $start_time = $_POST['start_time'];

    // $start_time2 = $_POST['start_time2']; 
     
    $r_date = $_POST['r_date'];

    $comments = $_POST['comments'];


    // Тут пошли данные таблицы

    $file_1 = $_POST['file_1'];
    $mat_1 = $_POST['mat_1'];
    $size_1 = $_POST['size_1'];
    $color_1 = $_POST['color_1'];
    $dim_1 = $_POST['dim_1'];
    $quant_1 = $_POST['quant_1'];


    $email_message .= "Компания: ".clean_string($company)."\n";     
    $email_message .= "Имя: ".clean_string($name)."\n";
    $email_message .= "Телефон: ".clean_string($phone)."\n";     
    $email_message .= "Дата: ".clean_string($date)."\n"; 
    $email_message .= "Желаемая дата отгрузки: ".clean_string($s_date)."\n";
    $email_message .= "Доставка: ".clean_string($delivery)."\n";     
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
    $email_message .= "Время приема заказа: ".clean_string($start_time)."\n";
    $email_message .= "Реальная дата отгрузки: ".clean_string($r_date)."\n";    
    $email_message .= "\n\nДанные таблицы, 1 строка: ".clean_string()."\n\n";
    $email_message .= "Наименование файла: ".clean_string($file_1)."\n";
    $email_message .= "Наименование материала: ".clean_string($mat_1)."\n";
    $email_message .= "Толщина материала, мм: ".clean_string($size_1)."\n";
    $email_message .= "Цвет материала: ".clean_string($color_1)."\n";
    $email_message .= "Размер изделия, мм: ".clean_string($dim_1)."\n";
    $email_message .= "Кол-во изделий: ".clean_string($quant_1)."\n";


    $email_message .= "\n\n\nСообщение: ".clean_string($comments)."\n";
      
    $headers = 'От: '.$email_from."\r\n".   
    'Ответить: '.$email_from."\r\n" .     
    'X-Mailer: PHP/' . phpversion();

    $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

    $tmp_name = $_FILES['filename']['tmp_name'];
    $type = $_FILES['filename']['type'];
    $file_name = $_FILES['filename']['name'];
    $size = $_FILES['filename']['size'];
    if (file_exists($tmp_name)){
        if(is_uploaded_file($tmp_name)){
             $file = fopen($tmp_name,'rb');
             $data = fread($file,filesize($tmp_name));
             fclose($file);
             $data = chunk_split(base64_encode($data));
        }

            $headers .= 
             "MIME-Version: 1.0\r\n" .
             "Content-Type: multipart/mixed;\r\n" .
             " boundary=\"{$mime_boundary}\"";

             $email_message .= 
             "--{$mime_boundary}\n" .
             "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
             "Content-Transfer-Encoding: 7bit\n\n" .
             $email_message . "\n\n";


             $email_message .= "--{$mime_boundary}\n" .
             "Content-Type: {$type};\n" .
             " name=\"{$file_name}\"\n" .
             //"Content-Disposition: attachment;\n" .
             //" filename=\"{$fileatt_name}\"\n" .
             "Content-Transfer-Encoding: base64\n\n" .
             $data . "\n\n" .
             "--{$mime_boundary}--\n";
    }
 
    @mail($email_to, $email_subject, $email_message, $headers, $headersf);
  • Вопрос задан
  • 3281 просмотр
Пригласить эксперта
Ответы на вопрос 2
@begemot_nn
NoSQL - вы имеете ввиду "без использования сервера баз данных" или действительно NoSQL ?

чтобы решить ваш вопрос - нужно в скрипте PHP найти то место, где он формирует тело письма, и модифицировать там ровно так как вам надо.
больше без кода сказать вам смогут только экстрасенсы
Ответ написан
@ikramer Автор вопроса
ок.
решил таким образом

$email_message .= "<table border=1>"."<tr>"."<td>"."Компания: ".clean_string($company)."</td>"."<td>"."Исполнитель:"."</td>"."</tr>"."<tr>"."<td>"."Имя: ".clean_string($name)."</td>"."<td>"."Телефон: "."</td>"."</tr>"."<tr>"."<td>"."Телефон: ".clean_string($phone)."</td>"."<td>"."Время приема заказа: ".clean_string($start_time)."</td>"."</tr>"."<tr>"."<td>"."Дата: ".clean_string($date)."</td>"."<td>"."Реальная дата отгрузки: ".clean_string($r_date)."</td>"."</tr>"."<tr>"."<td>"."Желаемая дата отгрузки: ".clean_string($s_date)."</td>"."<td>"." "."</td>"."</tr>"."<tr>"."<td>"."Доставка: ".clean_string($delivery)."</td>"."<td>"." "."</td>"."</tr>"."<tr>"."<td>"."Email: ".clean_string($email_from)."</td>"."<td>"." "."</td>"."</tr>"."</table>";


но хотелось бы что-то изящнее.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы