html页面构造的多维数组在服务器端无法获取值

WBOY
풀어 주다: 2016-06-06 20:22:56
원래의
1339명이 탐색했습니다.

项目采用Thinkphp,前端框架用dwz,在页面构造了一个二维数组,如下:

<code><input type="checkbox" value="msg" name="noticetype[{$vo['staffId']}]['msg']">短消息 
<input type="checkbox" value="email" name="noticetype[{$vo['staffId']}]['email']">邮件 
<input type="checkbox" value="wechat" name="noticetype[{$vo['staffId']}]['wechat']">微信 </code>
로그인 후 복사
로그인 후 복사

提交上去后,打印noticetype这个数组,得到的结果是:
Array
(

<code>[9353] => Array
    (
        ['msg'] => msg
    )

[9784] => Array
    (
        ['wechat'] => wechat
    )

[10113] => Array
    (
        ['email'] => email
    )
</code>
로그인 후 복사
로그인 후 복사

)

但是,当使用循环遍历上面这个数组,或者输出:
"$_POST\[noticetype\]\[9784\][\'wechat\"这种格式
却显示空白,是不是post不该这样使用二维数组?
为什么能打印出完整的二维数组却无法获取单个值呢?

回复内容:

项目采用Thinkphp,前端框架用dwz,在页面构造了一个二维数组,如下:

<code><input type="checkbox" value="msg" name="noticetype[{$vo['staffId']}]['msg']">短消息 
<input type="checkbox" value="email" name="noticetype[{$vo['staffId']}]['email']">邮件 
<input type="checkbox" value="wechat" name="noticetype[{$vo['staffId']}]['wechat']">微信 </code>
로그인 후 복사
로그인 후 복사

提交上去后,打印noticetype这个数组,得到的结果是:
Array
(

<code>[9353] => Array
    (
        ['msg'] => msg
    )

[9784] => Array
    (
        ['wechat'] => wechat
    )

[10113] => Array
    (
        ['email'] => email
    )
</code>
로그인 후 복사
로그인 후 복사

)

但是,当使用循环遍历上面这个数组,或者输出:
"$_POST\[noticetype\]\[9784\][\'wechat\"这种格式
却显示空白,是不是post不该这样使用二维数组?
为什么能打印出完整的二维数组却无法获取单个值呢?

用你的给出的现有的数据模拟了一遍,发现是你的提交表格的时候的数组里面的键值加了引号的问题。
给你看看我用你的数据写的:

<code><?php if($_POST){    
    echo "<pre class="brush:php;toolbar:false">";
    print_r($_POST);
    echo "</code>
로그인 후 복사
"; echo "-----------------------------------------------"."

"; echo $_POST['noticetype'][9353]['msg']."
"; echo $_POST['noticetype'][9784]['email']."
"; echo $_POST['noticetype'][10113]['wechat']."
"; echo "---------------------------------------------"."

"; foreach ($_POST['noticetype'] as $key => $value) { foreach ($value as $k => $v) { echo $v.'
'; } } } ?>

index
短消息 邮件 微信

结果展示:

html页面构造的多维数组在服务器端无法获取值

如果你将msg加上引号也就是<input type="checkbox" value="msg" name="noticetype[9353]['msg']">这样的话,foreach循环可以取到值但是$_POST['noticetype'][9353]['msg']这样取不到值。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!