求各位大神帮帮忙,PHP $_post 数组 怎么实现

怎么建立数组,然后用$_post (PHP) 输出来

<button id="A">
<div name="type" > type: double</div>
<div name="day"> day: May 12</div>
</button>

<button id="B">
<div name="type" > type: double</div>
<div name="day"> day: May 16</div>
</button>

<button id="C">
<div name="type" > type: single</div>
<div name="day"> day: May 4</div>
</button>

想建立一个数组:
A-->TYPE SINGLE
DAY May 12

怎么建这个数组,然后实现把这个数组变成$_post 的数组?
可以写成这样吗?
$_POST['id']['type']
$_POST['id']['day']

有点没看明白你提问的目的!

php数组的定义很宽泛,不需要预先定义变量,可以直接存放数据,有两种形式:索引数组(不指定键,系统自动分配数字键)、关联数组(自定义键,指定键)!

例如:想要获得如下结构的二维数组(关联数组)

[
  'A' => [
        'type' => 'TYPE_SINGLE', 
        'day' => 'DAY May 12'
        ], 
  'B' => [
        'type' => 'TYPE SINGLE_2', 
        'day' => 'DAY May 13'
        ],
  'C' => [
        'type' => 'TYPE SINGLE_3', 
        'day' => 'DAY May 14'
        ]
]

php定义代码:

//第1种
$abc = [
  'A' => [
        'type' => 'TYPE_SINGLE', 
        'day' => 'DAY May 12'
        ], 
  'B' => [
        'type' => 'TYPE SINGLE_2', 
        'day' => 'DAY May 13'
        ],
  'C' => [
        'type' => 'TYPE SINGLE_3', 
        'day' => 'DAY May 14'
        ]
];

//第2种
$abc2 = [];//定义并重置变量,此行可不写
$abc2['A']['type'] = 'TYPE_SINGLE';
$abc2['A']['day'] = 'DAY May 12';
$abc2['B']['type'] = 'TYPE_SINGLE_2';
$abc2['B']['day'] = 'DAY May 13';
$abc2['C']['type'] = 'TYPE SINGLE_3';
$abc2['C']['day'] = 'DAY May 14';

//第3种(1、2的混合用法)
$abc3['A'] = ['type' => 'TYPE_SINGLE', 'day' => 'DAY May 12'];
$abc3['B'] = ['type' => 'TYPE_SINGLE_2', 'day' => 'DAY May 13'];
$abc3['C'] = ['type' => 'TYPE_SINGLE_3', 'day' => 'DAY May 14'];

以上三种写法是常用写法,还有其他形式,php数组功能很强大,可以存放任意数据类型,写法也很随意!$abc、$abc2、$abc3 数据结构相同,但是$abc会重置内部结构。

注:$_POST 是全局变量,适合从中获取(请求)数据,不建议你修改其内部数据&结构,防止键名冲突,破坏全局变量的结构。如果你修改了$_POST,的确,$_POST['A']['type'] 能得到字符串'TYPE_SINGLE'!

追问

谢谢!还有个问题,$_POST[' '] 括号里面可以是变量吗?我想实现,点击一个button,来获取这个button的ID----whichButton.id 如果一个button的id是A,那
$_POST[whichButton.id]['type']能得到TYPE_SINGLE'?

追答

按php语法是可以的!
$xyz = 'A';
$abc[$xyz] = ['type' => 'TYPE_SINGLE', 'day' => 'DAY May 12'];
$abc[$xyz]其实就是$abc['A']。
但是,你需要区分前后端业务,当你产生页面后,即php生成html后,页面是不受php控制了,只能通过javascript控制,也就是javascript中whichButton.id是不能和php中$_POST['键']['type']混合的,是两种脚本语言。

追问

谢谢大神!那要想在PHP里用JavaScript的whichButton.id , 我应该怎么做?你不提醒,我就要混着用了。。。。

追答

通过php生成html代码,将php数据转化成js数据,嵌到页面相应位置,让js去处理数据。

【json数据格式 是 一种标准数据格式,主流语言都支持识别这种数据】

举个例子:

红色框中是php代码,其他区域是javascript,红色框在页面产生后,会变成json字符串数据,塞到js中的pageParam.om_id中去。(各种语言都有专门转换、解析json数据的方法)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-30
$_POST是后端接收前端数据的方法。前端数据最好的包装形式是json和XML。XML比较旧,而且不好用。我就说json。比如你这些数据封装成json就是 var data = [{"id":"A","type":"double","day":"May 12"},{"id":"B","type":"double","day":"May 16"}];
然后你可以用表单提交或者ajax提交数据上去。PHP接收到了,对象形式数据$data = json_decode($_POST['data'])或者数组形式数据$data = json_decode($_POST['data'],true);,就可以拿到想要的数据了。而且java python C#等后端也可以处理json数据。
第2个回答  2018-05-30
你是要用js或者jquery传一个数组到后台,让后台用$_POST[''];接收,
是这个意思吗?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网