2017-10-05 77 views
-4

我有一个使用foreach循环填充查询数据的html选择。默认值为空,因此当页面加载时,它会显示未经过滤的查询。它看起来像这样如何在提交后显示选定的选项值

$client = $wpdb->get_results("SELECT string FROM `file` WHERE 
`code` = 001"); 

echo 'Filter by client: '; 
    echo '<select name="client_list"><option value=""></option>'; 
    foreach ($client as $key => $row) { 
    $value = $row->string; 
    echo 
    '<option value='.$value.'>' 
    .$value. '</option>'; 
    } 
    $client = $_GET['client_list']; 
    echo '</select>'; 

它用作基于所选选项值显示数据的过滤器。它过滤表看起来是这样的

|client | file    | 
    |------ |-------------------| 
    |client1 | file00000   | 
    |client2 | file00002   | 

现在,当我点击提交并查看过滤查询结果这是正确的,我也看到了默认选项值,而不是一个选择了HTML来过滤数据选择。我该如何修复this

+5

没有你已经(在某种程度上)登载了吗? https://stackoverflow.com/q/46582289/1415724并接受了一个答案。 –

+0

这不是同一个问题。它涉及到同样的问题,但这是一个不同的问题。 – R1ddler

+0

_这不是同一个问题_这几乎是100%相同的问题 –

回答

3

保留从$彦博VAR值,然后添加所选属性保留,并将它设置为所选值:

echo 'Filter by client: '; 
    echo '<select name="client_list"><option value=""></option>'; 
    foreach ($client as $key => $row) { 
    $value = $row->string; 
    if($_GET['client_list'] == $value){ 
     echo '<option value='.$value.' selected>'.$value. '</option>'; 
    }else{ 
     echo '<option value='.$value.'>'.$value. '</option>'; 
    } 
    $client = $_GET['client_list']; 
    echo '</select>'; 
+0

我正在使用$ _GET请求而不是$ _POST。 – R1ddler

+0

然后将$ _POST更改为$ _GET,应该很简单。 – Adam

相关问题