Heim > Fragen und Antworten > Hauptteil
每個用戶有一個欄位叫做skills
可能是 哈囉,你好,再見,不錯,太棒了
但每個人都不太一樣
我要如何找出該欄位的字元
若他的skills欄位有 太棒了 則顯示checked..類似這樣?
<? $skills = $SQLROW['skills'];?>
<? foreach($t as $key=>$value){ ?>
<input type="checkbox" name="skills_profile[]" id="profile<? echo $key;?>" value="<? echo $value;?>"
<? if(strpos($skills,$value))
{
echo 'checked';
}
?>>
<label for="profile<? echo $key;?>"><? echo $value;?></label>
<? } ?>
明明有哈囉,你好,再見,不錯,太棒了
但是他卻只有 你好,再見,不錯,太棒了
有checked?
這是哪裡有問題?
伊谢尔伦2017-04-10 17:39:05
没太看懂你的意思,不知道这是不是你要的
<?php
$sys_arr = explode(',','哈囉,你好,再見,不錯,太棒了');
$skills = explode(',','你好,再見');
foreach($sys_arr as $v){
$ck = in_array($v,$skills)?' checked':'';
echo "<input type='checkbox' value='{$v}'{$ck}>{$v}\n";
}
巴扎黑2017-04-10 17:39:05
把你回复的代码中的 strpos($skills,$value)
这个判断改成 if(strpos($skills,$value) !== false)
因为可能匹配位置为 0 的 skills
ringa_lee2017-04-10 17:39:05
首先你要知道strpos函数返回的是什么:
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
返回字符串在另一字符串中第一次出现的位置,如果没有找到字符串则返回 FALSE。
注释:字符串位置从 0 开始,不是从 1 开始。
因为你只是 if(strpos($skills,$value))
所以,你的 哈囉
位置在 0
你需要改成 (当然也可以换成其他写法)
if(strpos($skills,$value) !== false)
参考连接:
http://www.w3school.com.cn/ph...
大家讲道理2017-04-10 17:39:05
strops()返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。
如果没找到 needle,将返回 FALSE。
判断语句改成 if(strpos($skills,$value) !== false)
strops函数