Получить данные из таблицы HTML в PHP

У меня есть динамическая HTML-таблица, и я хочу получить данные из этой таблицы, используя метод POST. Можно ли сделать это? Какие еще способы вы бы порекомендовали для достижения этой цели. Вот простой пример из того, что я получил:

<html>
      <form id="form1" method="post" action="process.php">
         <table id="tblSample" name="tblSample">
         <tbody>
            <tr>
                <td>
                John Appleseed
                </td>    
                <td>
                Australia
                </td>
           </tr>
           <tr>
              <td>
              Mary Poppins
              </td> 
              <td>
              USA
              </td>   
            <tr>  
          </tbody>
          </table> 
       </form>
</html>

Может быть, возможно сохранить информацию в массиве или переменной javascript, чтобы опубликовать ее в файле действий, я не уверен.

Я не знаю, имеет ли это какое-либо отношение, но таблица генерируется динамически. Строки и ячейки добавляются пользователем с использованием JavaScript.

Я очень ценю ваши ответы.

5 ответов

Решение

Доступ к таблице как таковой невозможен, если вы не используете элементы формы (input, textareaи т. д.) и добавить name приписывать им; Затем вы можете получить доступ к своим элементам с $_POST,

Если у вас есть ваши данные в таблице, лучший способ получить наши данные с помощью JavaScript, используя innerHTML,

Вы можете попробовать использовать:

HTML:

<form id="form1" method="post" action="process.php" onSubmit="submitAction();">
    <input type="hidden" name="table_content" id="table_content"/>
    <input type="submit" name="submit" value="Send"/>

JavaScript:

function submitAction()
{
    var form = document.getElementById("form1");
    form.table_content.value = document.getElementById("tblSample").innerHTML;
    return form.submit();    
}

Вы можете назначить innerHTML формы в переменную и использовать AJAX, чтобы отправить его обратно на сервер в виде строки, или сохранить его в textarea и сделай то же самое. В любом случае, вам нужно разобрать строку, чтобы извлечь данные.

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

Если вы хотите отправить табличные данные, вам нужно будет использовать Javascript для их извлечения. Затем вы можете вставить данные в скрытый элемент формы или отправить данные с помощью вызова AJAX.

Это много способов для решения этой проблемы. Например: 1) Используйте ajax: поместите ваши данные в некоторый HTML-контейнер - например, span с именем класса 'formData_name', например, или с id = 'formData _' + name =, где name - это имя этих данных. Тогда вы в JS ищите весь этот промежуток и отправляете по ajax. Это очень просто, если вы используете jquery. В чистом js это тоже не сложно, но код будет больше.

2) Поместите ваши данные в некоторый html-контейнер, например, в span с именем класса 'formData_name' или с id = 'formData _' + name =, где name является именем этих данных. Кнопка "Bind submit", когда пользователь нажимает на кнопку "submit", вы создаете дополнительные скрытые поля ввода с именем adn и возвращаете true. 3) Вы можете отправить innerHTML по почте через связывающее событие submit и добавить скрытое поле для хранения innerHTML и проанализировать его на сервере. 4) Вы можете заменить все td для ввода при действии submit.

Но все эти решения не очень хороши, и если вы должны сделать что-то из этого, ваш архитектурный проект плох

Другие вопросы по тегам