Отправленная по электронной почте форма массива SQL

#php #sql #odbc #html-email

#php #sql #odbc #html-электронная почта

Вопрос:

~ редактировать
Я работаю над этой же проблемой уже несколько дней. Я пытаюсь изменить отдельные поля (измерения) в массиве, полученном из запроса, а затем отправить результат себе по электронной почте. Вот что у меня есть на данный момент…

 //form.php
    echo "<table id='tableTop'>";
    echo "<tr>";
    echo "<th>Pick Ticket</th>";
    echo "<th>Item ID</th>";
    echo "<th>Bin</th>";
    echo "<th>Length</th>";
    echo "<th>Width</th>";
    echo "<th>Height</th>";
echo "</tr>";
while($key = odbc_fetch_array($rows)){
echo "<form id='Email_Fix' method='post' action='mail.php'>";
echo "<tr>";
    echo "<td><input type='text' name='PT_N' value=".  $key['PT_N'] ." readonly></td>";
    echo "<td><input type='text' name='Item_ID' value=".  $key['Item_ID'] ." readonly></td>";
    echo "<td><input type='text' name='Bin' value=".  $key['Bin'] ." readonly></td>";
    echo "<td><input type='tel' step='0.01' pattern='[0-9.]*' name='Length' value=" . $key['Length'] . " size='10'></td>";
      echo "<td><input type='tel' step='0.01' pattern='[0-9.]*' name='Width' value=" . $key['Width'] . " size='10'></td>";
    echo "<td><input type='tel' step='0.01' pattern='[0-9.]*' name='Height' value=" . $key['Height'] . " size='10'></td>";
   echo "</tr>";
echo "<tr>";
  

Часть кода «name='». $key[‘PT_N’] .»_length» — это слабая попытка динамически изменять имена полей ввода. Проблема, с которой я сталкиваюсь, мне нужно иметь возможность вызывать эти поля на mail.php страница, но я не понял, как ссылаться на каждую из них с помощью $ _POST…

 //mail.php

foreach($_POST as $key => $value) {
  echo "POST parameter '$key' has '$value'";
}
  

Приведенный выше код немного помог, но он возвращает только одну строку из form.php. Вот результат, который я получаю… однако; на самом деле в этом есть 20 строк… «Коммерческие секреты не были опубликованы» 😛

Параметр POST ‘PT_N’ имеет ‘4338892’, параметр POST ‘Item_ID’ имеет ‘KOHK-14484-BGD’, параметр POST ‘Bin’ имеет ‘BOXFIX01’, параметр POST ‘Длина’ имеет ‘3.000000000’, параметр POST ‘Ширина’ имеет ‘2.500000000’, параметр POST ‘Высота’ имеет ‘2.000000000’

~ обновить

Я все же заставил это работать… Я делаю еще один шаг вперед и создал функцию

 $msg = "<p> Mike!</p><p> Here is your stuff!nn
<table id='tableTop'>
<tr>
<th>Pick Ticket</th>
<th>Item ID</th>
<th>Bin</th>
<th>Length</th>
<th>Width</th>
<th>Height</th>

</tr>";
function Fixit($loop, $num){

foreach($_POST[$loop] as $key => $num){
   echo "<td>" . $num . "</td>";
};
};

$msg1 = " <tr>" . Fixit('PT_N', '0') amp;amp; Fixit('Item_ID', '1') amp;amp; Fixit('Bin', '2') amp;amp; Fixit('Length', '3') amp;amp; Fixit('Width', '4') amp;amp; Fixit('Height', '5') ."</tr>";

echo $msg, $msg1;
  

Это не работает?

Комментарии:

1. Строка в строке 8 не закрыта.

Ответ №1:

Вы можете сделать

 foreach ($_POST as $key => $value) {
   // $key = name of the input
   // $value = value of the input
}
  

Комментарии:

1. Не могли бы вы помочь мне, объяснив это немного подробнее? Итак, я получаю это так, что $key по-прежнему является массивом, и он переносит значение $ key в переменную $ value?

2. Когда вы нажмете эту кнопку отправки, все входные данные будут отправлены в mail.php. В mail.php вы можете использовать приведенный выше foreach для доступа к каждому из входных данных.

3. Спасибо! Я сделал дамп, потому что в нем была ошибка, но он извлекает только одну строку из 2 (иногда 20)… Должен ли я сделать While ($value = foreach($ _POST как $key => $ value))

4. Каждый ввод должен иметь уникальное имя (если только это не переключатели или флажки). Если у вас есть 10 текстовых вводов с именем PT_N , отправляется только последний, потому что каждый из них перезаписывает предыдущий.

5. Это сработало отлично! Спасибо! Мне пришлось установить каждое входное имя как: