我正在尝试将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>
如何检索每个行数据并将其保存到数组元素,最后我将数组保存到数据库?感谢
答案 0 :(得分:6)
如果你想保存每行的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
轻松做同样的事情答案 1 :(得分:0)
这是PHP的基本用法。您提供输入名称,当您提交表单时,您提交的页面中的脚本将完成工作。
您的值将位于
中$_POST
阵列。所以你可以通过
访问它们$_POST['input_name']
您必须通过调用其名称来浏览每个值,然后将其放入数据库中。