把表單的數據成對存到數組的鍵和值中,然後json化存到數據庫在取出來反轉顯示到頁面中,保持鍵和值對
HTML form表單
<form method="post" action="test.php">
<input name="key[]" id="name" value="0"> 鍵
<input name="key[]" id="name" value="0"> 值
<input name="key[]" id="name" value="1"> 鍵
<input name="val[]" id="name" value="2"> 值
</form>
PHP後臺 test.php
<?php
$arr_key = $_POST['key'];
$arr_val = $_POST['val'];
$keyval=@array_combine($arr_key,$arr_val); //把兩個數組合拼成一個數組的鍵和值
$Fadd_fields =json_encode($keyval,JSON_UNESCAPED_UNICODE); //轉成json格式
//把josn反轉成對應數組的鍵和值
function std_class_object_to_array($stdclassobject){
$_array = is_object($stdclassobject) ? get_object_vars($stdclassobject) : $stdclassobject;
foreach ($_array as $key => $value) {
$value = (is_array($value) || is_object($value)) ? std_class_object_to_array($value) : $value;
$array[$key] = $value;
}
return $array;
}
$object_key = json_decode($know['Fadd_fields']);
$arr_key1 = std_class_object_to_array($object_key);
?>
頁面再用foreach循環顯示出來在頁面
<!--{foreach from=$arr_key1 item=val key=key name=liname}-->
<tr class="">
<td>添加鍵<input type="text" name="data[key][<!--{$smarty.foreach.liname.iteration-1}-->]" value="<!--{$key}-->">
添加值<input type="text" name="data[val][<!--{$smarty.foreach.liname.iteration-1}-->]" value="<!--{$val}-->"></td>
<td><button type="button" name="del" class="btn btn-default">刪除</button>
<input type="button" value="<!--{$smarty.foreach.liname.total}-->" id="max" style="display:none;" /></td>
</tr>
<!--{/foreach}-->