未选中URL GET值复选框

时间:2014-10-07 23:40:42

标签: php arrays checkbox

我有一个使用method =“POST”的搜索表单。用户还可以通过URL搜索,例如:

myurl.php?use_url = on& zipcode = London& categories = Firewood,Pellets

在我的页面顶部,我有以下代码将GET转换为POST:

$_POST['zipcode'] = addslashes($_GET['zipcode']);
$_POST['categories'] = addslashes($_GET['categories']);
$_POST['radius'] = addslashes($_GET['radius']);

我可以使用以下代码将zipcode值回显到我的文本字段中:

<input type="text" name="zipcode" value="<?php echo $_POST['zipcode']; ?>" />

我还可以使用以下代码将半径值回显到我的选择框中:

<select name="radius" id="country_id" class="chosen-radius">
<?php 
    $radius_array = explode(",", get_setting('radius', $db));

    foreach ($radius_array AS $radius) {
?>
    <option <?php if($radius == $_POST['radius']) echo 'selected="selected"'; ?> value="<?php echo $radius; ?>"><?php echo "Within&nbsp;" . $radius . "&nbsp;miles"; ?></option>
<?php 
    }
?>
</select>

我遇到的问题是将URL中的类别值回显到复选框中。通过POST提交表单工作正常,只是通过GET问题出现了。这是复选框的代码,你可以看到我在这里处理一个数组:

<?php
$categories_list = explode("\n", get_setting('categories', $db));

foreach($categories_list as $cat) {
    $cat = trim($cat);

    // We've added the next line so category choices are remembered upon submit.
    if(isset($_POST['categories']) 
    && in_array($cat, $_POST['categories'])) { 
       $select = "CHECKED"; 
    } else { 
       $select = ''; 
    }

     echo "<input type=\"checkbox\" " . $select . " name=\"categories[]\" value=\"" . $cat . "\" /><label for=\"" . $cat . "\" class=\"css-label\">" . $cat . "</label><br>";
} 
?>

任何善良的人都可以告诉我为什么我不能将URL中的类别值回显到“CHECKED”复选框中?

0 个答案:

没有答案