如何从PHP中的下拉列表中获取所选值的值?

Here's my drop down:

 <form name="form" method="POST" style="display:inline;">
            <select name="category" id="category" value="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;">
                 <option value="" disabled selected>Select Category</option>
            <?php
            $sth = $conn->prepare('Select name From category');
            $sth->execute();
            $data = $sth->fetchAll();   
            foreach ($data as $row ){
                if($row['name']!="")
             echo ' <option id=\"CategoryName\" nameCategoryNameVendorName\" value="' .$row['name']. '">'.$row['name'].'</option>';
            }
            ?> 
            </select>
     </form>

And I'm trying to access it using the following code:

if(!empty($_POST['category']))
     $category=$_POST['category'];

When I echo the value of $category, it returns null. Why is that? How can I get the value of the selected value from the drop down?

Hi In PHP we can submit form using a submit button or using javascript. if you want to use only php you shoud add a submit button and check if that is posted then check for category like this.

        <form name="form" method="POST" style="display:inline;">
                    <select name="category" id="category" value="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;">
                         <option value="" disabled selected>Select Category</option>
                    <?php
                    $sth = $conn->prepare('Select name From category');
                    $sth->execute();
                    $data = $sth->fetchAll();   
                    foreach ($data as $row ){
                        if($row['name']!="")
                     echo ' <option id=\"CategoryName\" nameCategoryNameVendorName\" value="' .$row['name']. '">'.$row['name'].'</option>';
                    }
                    ?> 
                    </select>
    <input type="submit" name="submit" value="submit">
             </form>

<?php

    if(isset($_POST['submit'])){
         $category=$_POST['category'];}


or you can try javascript for  submission it will work on change of value in select box

    <form name="form" method="POST" style="display:inline;">
                <select name="category" id="category" value="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;" onchange="document.form.submit();">
                     <option value="" disabled selected>Select Category</option>
                <?php
                $sth = $conn->prepare('Select name From category');
                $sth->execute();
                $data = $sth->fetchAll();   
                foreach ($data as $row ){
                    if($row['name']!="")
                 echo ' <option id=\"CategoryName\" nameCategoryNameVendorName\" value="' .$row['name']. '">'.$row['name'].'</option>';
                }
                ?> 
                </select>
         </form>

<?php 

if(!empty($_POST['category']))
     $category=$_POST['category'];

You need to use input type submit in form to get values in php

<form name="form" method="POST" style="display:inline;">
                <select name="category" id="category" class="form-control ddplaceholder" style="width:220px;font-size:18px;font-family:Roboto;">
                     <option value="" disabled selected>Select Category</option>
                <?php
                $sth = $conn->prepare('Select name From category');
                $sth->execute();
                $data = $sth->fetchAll();   
                foreach ($data as $row ){
                    if($row['name']!="")
                 echo ' <option id="CategoryName" value="' .$row['name']. '">'.$row['name'].'</option>';
                }
                ?> 
                </select>    <input type="submit" />
         </form>

    <?php
    if(!empty($_POST['category']))
         $category=$_POST['category'];
    print_r($category);
    ?>