把表单的数据成对存到数组的键和值中,然后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}-->