基于Mysql数据预先填充/预选复选框
我在html中有3个复选框:Chicago,SF,NYC。基于Mysql数据预先填充/预选复选框
用户可以检查任何这些复选框。这些数据然后被发送到我的数据库,并将数据分解为数据,以便将其存储为单个值而不是数组。
$locationpref = implode(", ",$_POST['locationpref']);
当我刷新我的页面时,我希望我的表单预先检查用户已选择的复选框。例如,如果我选择芝加哥和SF作为我的偏好设置,则只要我登录到我的个人资料,我希望看到这些框已被检查。
我明白它背后的html,但由于implode将数组转换为字符串,我不知道如何搜索字符串“SF”或“芝加哥”,然后相应地触发回声函数。
<?php if (in_array("SF", $locationpref)) {echo "checked='checked'";} ?>
有什么建议吗?
谢谢!
U need to explode the locations with coma.
$locations = "Chicago,SF,NYC";
$locationpref = explode(','$locations);
然后用
if (in_array("SF", $locationpref)) {echo "checked='checked'";}
我应该澄清:我用昏迷爆炸了位置,但是当我使用in_array函数进行搜索时,出于某种原因它只能检测到数组的第一项。例如,它只会检测爆炸阵列中的'芝加哥',但不会检测SF或NYC。你碰巧知道为什么? – jlim
在爆炸或爆炸后不要增加空间 –
您明显发现了implode()
,但不是它的反义词,explode()
,用于在另一方向转换。
if (in_array("SF", explode(',', $locationpref))) echo "checked='checked'";
或者你可以只正则表达式,寻找单词边界包裹的话:
if (preg_match('/\bSF\b/', $locationpref)) echo "checked='checked'";
http://php.net/explode – Utkanos
首先,您需要用昏迷引爆位置数据。 –
我应该澄清:我用昏迷爆炸了位置,但是当我使用in_array函数进行搜索时,出于某种原因它只能检测到数组的第一项。例如,它只会检测爆炸阵列中的'芝加哥',但不会检测SF或NYC。你碰巧知道为什么? – jlim