简体   繁体   中英

Conditional PHP Statements relating to an HTML form

I have an HTML form that I need to then reference to in PHP, so that I can eventually filter through data. Right now it is just echoing a bit of text for testing purposes.

I use the $_GET variable to get which values are equal to what, then use an if/else statement to tell me if each is checked.

If I say it only equals one value (== .25) it returns false.

However if I add one more or both more values (== .25 or .375 or .5) it will return the value I need.

How can I get it to return true with only one value?

    <table stlye="width:100%">
        <tr>
            <td style="width:50%">
            <form method="GET">
                    Tool Diameter: <br>
                        <input type="checkbox" name="Tool Diameter" value=.25 checked> .25<br>
                        <input type="checkbox" name="Tool Diameter" value=.375 checked> 3/8<br>
                        <input type="checkbox" name="Tool Diameter" value=.5 checked> 1/2<br><br>
                    Brand: <br>
                        <input type="checkbox" name="Brand" value="Lakeshore Carbide " checked> Lakeshore Carbide<br>
                        <input type="checkbox" name="Brand" value="AB Tools" checked> AB Tools<br>
                        <input type="checkbox" name="Brand" value="Helical Tools" checked> Helical Tools<br><br>
                    Flutes: <br>
                        <input type="checkbox" name="Flutes" value="2" checked> 2<br>
                        <input type="checkbox" name="Flutes" value="3" checked> 3<br>
                        <input type="checkbox" name="Flutes" value="4" checked> 4<br><br>
                    Tool Material: <br>
                        <input type="checkbox" name="Material" value="HSS" checked> HSS<br>
                        <input type="checkbox" name="Material" value="Carbide" checked> Carbide<br>
                        <input type="checkbox" name="Material" value="Cobalt" checked> Cobalt<br><br>
                    Coating: <br>
                        <input type="checkbox" name="Coating" value="Uncoated" checked> Uncoated<br>
                        <input type="checkbox" name="Coating" value="ZrN" checked> ZrN<br>
                        <input type="checkbox" name="Coating" value="TiCN" checked> TiCN<br><br>
                    Tool Type: <br>
                        <input type="checkbox" name="Type" value="Face Mill" checked> Face Mill<br>
                        <input type="checkbox" name="Type" value="Flat Endmill" checked> Flat Endmill<br>
                        <input type="checkbox" name="Type" value="Ball Endmill" checked> Ball Endmill<br> 
                    <br><button>Filter</button><br>
                </form>
            </td>
            <td style="width:50%">
                <style type="text/css">
                    td
                    {
                    padding:0 50px 0 50px;
                    }
                </style>
        <?php
            //while (true){     
            if ($_GET['Tool Diameter'] == .375) {
              echo 'test = true';
            }
            else {
              echo "false";
            }
    ?>
            </td>
        </tr>

    </table>

Convert the values to strings eg

<input type="checkbox" name="Tool Diameter" value=".375" checked> .375<br>

then check

if ($_GET['Tool Diameter'] == ".375"){
enter code here
}

1st mistake

values have to be wrapped in parenthesise value=".25"

2nd mistake

names have to be unique, as a result you have only one value in the array $_GET['Tool Diameter'] you should have a slot in $_GET that contains ie array of your results, so lets say

$_GET['Dimensions'] = [
  'Dimension 1' => '.25',
  'Dimension 2' => '.375',
  'Dimension 3' => '.5'
];

and then refer to each of them separately

try this

<input type="checkbox" name="Tool Diameter[]" value=".25" checked> .25<br>
<input type="checkbox" name="Tool Diameter[]" value=".375" checked> 3/8<br>
<input type="checkbox" name="Tool Diameter[]" value=".5" checked> 1/2<br><br>

..... 
<?php 
// for checking the condition 'atleast 1 ' should be checked 
if(sizeof($_GET['Tool Diameter']) >=1){
 echo 'test = true';
}
else {
  echo "test = false";
}

?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM