【发布时间】:2014-12-08 20:50:33
【问题描述】:
我有 2 个 mysql 查询,每个都列出了一系列公司。 1 个完整的列表,1 个较短的列表。
我将它们显示在一个项目符号列表中,如果同一家公司在两个查询中,我想选中它旁边的相关复选框。
目前,我可以显示完整列表没问题,然后检查两个列表中的第一个,但不会再检查两个列表中重复的。
我尝试过 while 语句、foreach 语句和 in_array,但我认为我一定遗漏了一些东西。希望有人能告诉我我的方式的错误。
$companysolicitors = mysql_query("SELECT * FROM companyselected WHERE companyid='$companyid'");
$companysolicitor = mysql_fetch_array( $companysolicitors );
$mainquery = mysql_query("SELECT * FROM company”);
while($listcompanies = mysql_fetch_array($mainquery)) {
echo "<input name=‘companies[]' type='checkbox' id='".$listcompanies['companyid']."' data-role='none' value='".$listcompanies['companyid']."’";
foreach ($companysolicitor as $i) { if ($i == $listcompanies['companyid']) { echo ' checked'; } }
echo "><label for='".$listcompanies['companyid']."'><span></span>".$listcompanies['companyname']."</label>”;
}
【问题讨论】:
-
您可以使用
array_intersect来捕捉它们,两者都有什么。 -
两者中的每个公司都有一个“id”,$listcompanies 还包含公司名称。不熟悉array_intersect,我怎么能用它来检查一个复选框?
-
我认为你在 comaprision 中有一个错误 // if ($i == $listcompanies['companyid']),这里 $i 有一个值数组而不是公司 ID....
-
谢谢 V Arun,是的,我认为你是对的,我认为这就是 Rana 在他的解决方案下面的回答中所显示的内容,但我仍然无法选中超过 1 个复选框。就像数组不包含所有数据一样。