预填充/预先检查基于Mysql数据的复选框

时间:2017-10-09 13:23:24

标签: php mysql arrays checkbox

我在html中有一个包含3个复选框的表单:Chicago,SF,NYC。

用户可以选中其中任何一个复选框。然后数据被发送到我的数据库,我将数据内爆,使其作为单独的值而不是数组存储。

$locationpref = implode(", ",$_POST['locationpref']);

当我刷新页面时,我希望我的表单预先检查用户已经选择的复选框。例如,如果我选择芝加哥和SF作为我的首选项,那么每当我登录我的个人资料时,我都希望看到这些框被检出。

我理解它背后的html,但是由于implode将数组转换为字符串,我无法弄清楚如何搜索字符串中的“SF”或“Chicago”,然后相应地触发echo函数。

<?php if (in_array("SF", $locationpref)) {echo "checked='checked'";} ?>

有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

U need to explode the locations with coma.

$locations = "Chicago,SF,NYC";
$locationpref = explode(','$locations);

然后使用

if (in_array("SF", $locationpref)) {echo "checked='checked'";}

答案 1 :(得分:0)

您显然已发现Failed to install graph: Invalid argument: GraphDef argument to Extend includes node 'mid', which was created by a previous call to Create or Extend in this session. 但未发现其相反的implode(),以便向另一个方向转换。

explode()

或者你可以只使用REGEX,寻找包含在单词边界内的单词:

if (in_array("SF", explode(',', $locationpref))) echo "checked='checked'";