PHP post获取页面传过来的数组json存到数据库然后在取出来反转显示到页面

本文介绍了如何使用PHP从HTML表单获取数据,将数据转化为JSON数组并存储到数据库中,之后从数据库取出数据进行反转,最后在页面上使用foreach循环展示反转后的键值对。

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


好的,这是一个比较常见的前后端交互的问题。首先,你需要在 Vue 中获取到前端传递过来的数组,然后将其发送到后端 PHP 接口。在 PHP 接口中,你需要解析前端传递过来的数组,并将其插入到数据库中。 下面是一个简单的实现过程: 1. Vue 中将数组传递到 PHP 接口 在 Vue 中,你可以使用 axios 库来发送请求。首先,你需要将数组转换为 JSON 字符串,然后将其作为请求体发送到 PHP 接口。 ```javascript // 将数组转换为 JSON 字符串 const data = JSON.stringify(array) // 发送 POST 请求到 PHP 接口 axios.post('/api/addData.php', data) .then(response => { console.log(response.data) }) .catch(error => { console.log(error) }) ``` 2. PHP 接口中解析数组并插入到数据库中 在 PHP 接口中,你可以使用 $_POST 变量获取到前端传递过来的 JSON 字符串,并将其解析为 PHP 数组。然后,你可以使用 PHP数据库操作库(如 PDO)将数据插入到数据库中。 ```php // 获取前端传递过来的 JSON 字符串 $data = json_decode(file_get_contents('php://input'), true); // 解析数组并插入到数据库中 $conn = new PDO('mysql:host=localhost;dbname=test', 'username', 'password'); $stmt = $conn->prepare('INSERT INTO table_name (column1, column2, column3) VALUES (:value1, :value2, :value3)'); foreach ($data as $item) { $stmt->bindParam(':value1', $item['value1']); $stmt->bindParam(':value2', $item['value2']); $stmt->bindParam(':value3', $item['value3']); $stmt->execute(); } ``` 注意,这只是一个简单的示例,你需要根据自己的实际情况来进行修改。另外,为了安全起见,你需要对前端传递过来的数据进行验证和过滤,以防止 SQL 注入等安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值