Преобразовать строки таблицы HTML в массив PHP и сохранить его в базе данных?

Я пытаюсь сохранить строки таблицы HTML в массиве php, а затем сохранить массив в базе данных.

<form action="" method="post">
        <table class="widefat" id="theTable">
                        <thead>
                                <tr>
                                   <th>Level Identifier</th>
                                    <th>Non-logged in message</th>
                                    <th>Logged in message</th>
                                </tr>
                        </thead>
                        <tbody>

                                  <tr>
                                    <td><input type="text" value="" style="height: 19px;background-color: white;font-size:10px;"/></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1">This is your custom message template</textarea></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1">This is your custom message template</textarea></td>
                                  </tr>

                                   <tr>
                                    <td><input type="text" value="" style="height: 19px;background-color: white;font-size:10px;"/></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1"></textarea></td>
                                    <td><textarea style="font-size:10px;" name="promo_msg_free" cols="43" rows="1"></textarea></td>
                                  </tr>

                        </tbody>    
                    </table> 
                </form>

Как я могу получить данные каждой строки и сохранить их в элемент массива, и, наконец, я бы сохранить массив в БД? Спасибо

2 ответа

Решение

ЕСЛИ ВЫ ХОТИТЕ СОХРАНИТЬ HTML КАЖДОГО РЯДА:

Используйте JQuery.

var rowsArray = {};
var i = 0;
$('#theTable tr').each(function({
    rowsArray[i] = $(this).html(); // if you want to save the htmls of each row
    i++;
});

затем используйте ajax для публикации этих данных

$.ajax({
   type: 'post',
   url: URL_TO_UR_SCRIPT,
   data: { myarray : rowsArray },
   success: function(result) {
     //ur success handler OPTIONAL
   }
});

На стороне PHP вы делаете:

$array = isset($_POST['myarray']) ? $_POST['myarray'] : false;
if ($array) { 
  $array = serialize($array);
  //UPDATE YOUR DATABASE WITH THIS SERIALIZED ARRAY
}

Вы не можете сохранить массив php в базу данных, поэтому вам нужно его сериализовать, а когда вы извлекаете его из БД, используйте unserialize ()

Если вы имели в виду, что хотите сохранить значения области ввода и текстовой области, то вам нужно установить имена для каждого элемента, а затем получить к ним доступ в своем скрипте, используя $_POST.

 $array = array;
 foreach($_POST as $key => $value) {
    //sanitize your input here
    $array[$key] = $value;
 }
 $serialized = serialize($array);
 //save serialized array in your DB

ПРИМЕЧАНИЕ / СОВЕТ: К вашему сведению, не используйте HTML-таблицу для размещения элементов формы. Таблицы должны использоваться для представления данных. Вы можете легко сделать то же самое, используя div и css

Это базовое использование PHP. Вы называете свои входные имена, и когда вы отправляете форму, ваш скрипт на отправленной странице выполнит эту работу.

Ваши ценности будут находиться в

$_POST 

массив. Таким образом, вы получаете доступ к ним по

$_POST['input_name']

вам придется просмотреть каждое значение, вызвав его имя, и затем поместить его в базу данных соответствующим образом.

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