Перебор полей таблицы и отправка значений по электронной почте

#javascript #php #loops #html-table #field

#javascript #php #циклы #html-таблица #поле

Вопрос:

У меня есть такая таблица:

 <tr class="product">
 <td><input class ="parts" id="tf1" type="text" style="width:327px"/></td>
 <td><input class ="parts" id="tf2" type="text" style="width:51px";"/></td>
 <td><input class ="parts" id="tf3" type="text" style="width:144px";"/></td>
 <td><input class ="parts" id="tf4" type="text" style="width:64px";"/></td>
 <td><input class ="parts" id="tf5" type="text" style="width:81px";"/></td>
 <td><input class ="parts" id="tf6" type="text" style="width:12px";"/></td>
 <td><input class ="parts" id="tf7" type="text" style="width:21px";"/></td>
 <td><input class ="parts" id="tf8" type="text" style="width:22px";"/></td>
 <td><input class ="parts" id="tf9" type="text" style="width:22px";"/></td>
 <td><input class ="parts" id="tf10" type="text" style="width:60px";"/></td>
 <td><input class ="parts" id="tf11" type="text" style="width:35px";"/></td>
 <td><input class ="parts" id="tf12" type="text" style="width:41px";"/></td>
 <td><input class ="parts" id="tf13" type="text" style="width:50px";"/></td>
 <td><input class ="parts" id="tf14" type="text" style="width:44px";"/></td>
 <td><input type="button" class="addRow" value="Add"/></td>
 <td><input type="button" class="delRow" value="Delete"/></td>
</tr>
  

Я хочу выполнить итерацию по каждому полю строки таблицы, отметить результат и отправить его с помощью php mail на адрес электронной почты. Я думаю, что это довольно просто, но это почему-то не работает.
Я пробовал с помощью этой функции:

 function fill(){
var value = $find.("tr.product.input.parts").html();
return value;
}
  

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

1. как вы собираетесь отправлять / обрабатывать эту информацию? вы хотите использовать только js? или вы хотите использовать php?

2. Я думал поместить переменную в невидимое текстовое поле, а затем с помощью метода POST отправить ее на php, а затем отформатировать и отправить по электронной почте…

3. Метод html() получает только первый элемент. Итерация не выполняется. Вы можете использовать для каждого.

Ответ №1:

Предполагая, что ваши кнопки addRow и delRow работают, поскольку вы ничего не упомянули об этом:

Вместо этого измените имя ввода на array. поэтому вместо

 <td><input class ="parts" id="tf1" type="text" style="width:327px"/></td>
<td><input class ="parts" id="tf2" type="text" style="width:51px"/></td>
<td><input class ="parts" id="tf3" type="text" style="width:144px"/></td>
  

Вы должны использовать

 <td><input class ="parts" id="tf1" name="tf[]" type="text" style="width:327px"/></td>
<td><input class ="parts" id="tf2" name="tf[]" type="text" style="width:51px"/></td>
<td><input class ="parts" id="tf3" name="tf[]" type="text" style="width:144px"/></td>
  

При обработке с помощью PHP все значения будут в $ _POST [‘tf’] в форме массива, начиная с индекса 0. С помощью этого вы можете перебирать и обрабатывать его и отправлять по электронной почте.

В любом случае, мне интересно, почему ваши текстовые поля имеют разную ширину, а style =»width:327px»;» неправильная разметка.

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

1. Итак, я должен использовать id в качестве массива? И да, мои кнопки добавления и удаления работают. И я использую разную ширину, потому что мне нужны поля разных размеров. И —;»— ошибка, удалена…

2. Постобработку проще выполнить, поскольку нет фиксированного количества входных данных.