如何使用sql在php的选择框中显示以前选择的选择选项

如何使用sql在php的选择框中显示以前选择的选择选项,php,mysql,Php,Mysql,以上是我代码的一部分。当我选择位置时,如果我在页面刷新后单击“提交”按钮,它不会显示以前输入的位置。我通过调用函数显示数据库中的位置。这是我的定位功能: <tr> <td>Select location</td> <td> <select name="contractors" id="contractors" class="autofill" style="width:100%" onchange="fetch_con1(th

以上是我代码的一部分。当我选择位置时,如果我在页面刷新后单击“提交”按钮,它不会显示以前输入的位置。我通过调用函数显示数据库中的位置。这是我的定位功能:

<tr>
  <td>Select location</td>
  <td>
    <select name="contractors" id="contractors" class="autofill" style="width:100%" onchange="fetch_con1(this.value);">
        <option value="all" selected='selected'>All contractors</option>

        <?php $location->location_options(); ?> 
    </select>   
  </td>
</tr>
这是我的位置函数

如果$location\u id是用该函数定义的,那么这可能会按预期工作,尽管正如前面的评论所指出的那样-您还应该从硬编码选项“所有承包商”中删除selected='selected'

function location_options() {       
    global $db;     
    $query = 'SELECT * from locations ORDER by location_name ASC';      
    $result = $db->query($query) or die($db->error);        
    $options = '';  

    if ($location_id!= '') {            
        while($row = $result->fetch_array()) {              
            if ($location_id == $row['location_id']) {              
                $options .= '<option selected="selected" value="'.$row['location_id'].'">'.$row['location_name'].'</option>';               
            } else  {               
               $options .= '<option value="'.$row['location_id'].'">'.$row['location_name'].'</option>';                
            }           
        }       
    } else {            
       while ($row = $result->fetch_array()) {              
           $options .= '<option value="'.$row['location_id'].'">'.$row['location_name'].'</option>';            
       }        
    }       
       echo $options;       
    }
如果$location\u id是通过函数定义的,那么这可能会按照预期工作,尽管正如前面的评论中所指出的那样-您还应该从硬编码选项“All Contractors”中删除selected='selected'

function location_options() {       
    global $db;     
    $query = 'SELECT * from locations ORDER by location_name ASC';      
    $result = $db->query($query) or die($db->error);        
    $options = '';  

    if ($location_id!= '') {            
        while($row = $result->fetch_array()) {              
            if ($location_id == $row['location_id']) {              
                $options .= '<option selected="selected" value="'.$row['location_id'].'">'.$row['location_name'].'</option>';               
            } else  {               
               $options .= '<option value="'.$row['location_id'].'">'.$row['location_name'].'</option>';                
            }           
        }       
    } else {            
       while ($row = $result->fetch_array()) {              
           $options .= '<option value="'.$row['location_id'].'">'.$row['location_name'].'</option>';            
       }        
    }       
       echo $options;       
    }

您能否提供位置选项功能的内容?提交表单时,需要从$\u POST数据中提取select的值,然后将该值与函数运行时检索到的值进行比较,并确保匹配位置的HTML标记中有“selected”元素。但是,更具体的代码回答需要该函数的内容。从“所有承包商”中删除selected='selected',并确保在$location->location\u选项的正确/选定元素中添加'selected=selected',初始$location\u id设置在哪里?在函数中测试$location\u id!=但是在那一点上它并不存在,所以我猜语句的else部分总是等于true。嗨,我添加了位置代码,你能建议我使用syntax选择的行吗?你能提供位置选项函数的内容吗?提交表单时,需要从$\u POST数据中提取select的值,然后将该值与函数运行时检索到的值进行比较,并确保匹配位置的HTML标记中有“selected”元素。但是,更具体的代码回答需要该函数的内容。从“所有承包商”中删除selected='selected',并确保在$location->location\u选项的正确/选定元素中添加'selected=selected',初始$location\u id设置在哪里?在函数中测试$location\u id!=但是在那一点上它并不存在,所以我猜语句的else部分总是等于true。嗨,我添加了位置代码,你能建议我用语法把select放在哪一行吗