使用PHP中的Checkboxes设置和检索数组中的值

时间:2016-06-09 04:29:57

标签: php forms

我正在尝试放置一个值并稍后在

上检索它
$fruits = array("Watermelon", "Lime", "Lemon");
$result = count($fruits);
$i = 0;
while ($i < $result) {
echo "<br>" . "<input type='checkbox' name='fruit[]' value='$fruits[$i]'>";

echo "$fruits[$i]";
$i++;
}

第一组我将水果分配给每个数组的值,下面的代码应该设置if语句中的值并将它们与复选框进行比较。如果我按名称放入水果,它可以起作用,例如“西瓜”有效,但“$ fruits [0]”没有。

if ($_SERVER["REQUEST_METHOD"] == "POST") {

if(isset($_POST["fruit"])){
    $i = 0;
    while($i < $result) {

       if(in_array('$fruits[$i]', $_POST['fruit'])){
            echo "It works!";
            $i++;
        } else {

        $i++;
        } 
    } 
} else {
            echo "choose a box";
            $i = $result;
}

2 个答案:

答案 0 :(得分:0)

您可以使用foreach()轻松完成此操作(如果您愿意)。

if(isset($_POST['fruit'])) {
    foreach($_POST['fruit'] as $fruit) {
        $fruits[] = $fruit;
    }
    if(!empty($fruits)) {
        echo 'It Works.!';
    } else {
        echo "choose a box";
    }
}

答案 1 :(得分:0)

您在工作条件中使用$i++,因此如果将$ i增加到1,直到$fruits的最后一个索引,如果$fruits$_POST最后一个索引不存在,它将会没有显示..使用exit可以显示。

if(isset($_POST["fruit"])){
    $i = 0;
    while($i < $result) {
       if(in_array($fruits[$i],$_POST['fruit'])){
            echo "It works!";
            exit;
        } else {    
        $i++;
        } 
    } 
} 

也无需引用您的阵列...

if(in_array('$fruits[$i]', $_POST['fruit'])) //remove ''