Я пытаюсь сохранить строки таблицы 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>
Как я могу получить данные каждой строки и сохранить ее в элементе массива, и, наконец, я бы сохранил массив в db? благодаря
ЕСЛИ ВЫ ХОТИТЕ СОХРАНИТЬ 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
ПРИМЕЧАНИЕ / СОВЕТ: FYI не использует таблицу html для размещения элементов формы. Таблицы должны использоваться для представления данных. Вы можете легко сделать что-то, используя divs и css
Это базовое использование PHP. Вы даете имена своих входов, когда вы отправляете форму, ваш сценарий на странице, представленной на странице, будет выполнять эту работу.
Ваши значения будут находиться в
$_POST
массив. Таким образом, вы получаете доступ к ним посредством
$_POST['input_name']
вам нужно будет пройти каждое значение, вызвав его имя, а затем поместите его в базу данных соответственно.