0

我有一个包含 8 个不同应用程序名称的数组。如果用户在上次登录时选择了该选项,我会遍历它并选中一个复选框。

foreach($appsArray as $app){ 
    $query = " SELECT UK, SPAIN, FRANCE, BENELUX, GERMANY, SWEEDEN 
    FROM ".$app." 
    WHERE userid = ".$_SESSION['user']['id']; 

    $stmt = $db->prepare($query); 
    $result = $stmt->execute(); 
    $result = $stmt->fetchAll(); 

    echo("<td>".$app."</td> <td><center>
    <input type = 'checkbox' name=\"".$app."[]\"". 
    "value =\"".$app."UK\" checked=\"".$result[0]['UK']."\"/> ");

    $result=""; 
} 

但是,这在一定程度上是可行的——我为第一个应用程序选择的选项会反映在所有选项中。这一定与php中foreach循环的方式有关,但是我不确定如何。

任何建议将不胜感激。

编辑:为了澄清,我为一个应用程序选择的选项反映在所有应用程序复选框中。我希望他们独立。

4

1 回答 1

1

我相信问题可能更多在于您如何使用复选框的值。我遇到了一些问题,如果您不使用checked="checked". 尝试这样的事情。

$checked = $result[0]['UK'] ? ' checked="checked"' : '';

echo '<td>'.$app.'</td><td><center><input type="checkbox" name="'.$app.'[]"'. 
    ' value="'.$app.'UK"'.$checked.' /> ';

如果这仍然不起作用,请确保对 执行var_dump或类似操作$result以确保您的查询正常工作。

一旦你完成了这项工作,我可能会看到将这些查询合并为一个。我可以帮助 8 个子查询访问数据库,而不是 8 个单独的数据库调用。

于 2013-11-01T15:32:00.573 回答