【问题标题】:select all values from dropdown list in php if nothing is selected如果未选择任何内容,则从 php 的下拉列表中选择所有值
【发布时间】:2012-09-01 18:14:19
【问题描述】:

我有一个类似于下面的 sql 存储过程:

create procedure procedurename
declare @startdate datetime, @enddate endtime, @field1 varchar(15) = null

select * from table1
where field1 = @field1 or @field1 is null
and date between @startdate and @enddate

当我想显示来自 field1 的所有值时,我只是在执行时忽略提供参数 @field1,如下所示

execute procedurename @startdate = '01/07/2012', @enddate = '31/07/2012'

现在我想在浏览器中访问存储过程,我尝试了下面的代码,但如果我选择“全选”选项,它会显示空白结果。

<?php
$attr = 'selected="selected"';  ?>
<?php
$field1= isset($_REQUEST['field1']) ? $_REQUEST['field1'] : null; ?>
<select name="field1" style="margin-bottom:3px;"> 
<option> select all </option>
<option value="xyz" <?php echo $field1 == 'xyz' ? $attr : ''; ?>>xyz</option>
<option value="abc" <?php echo $field1 == 'abc' ? $attr : ''; ?>>abc</option>
 <option value="def" <?php echo $field1 == 'def' ? $attr : ''; ?>>abc</option>
</select>

所以基本上,如果我从下拉框中选择“全选”,我希望它选择 field1 的所有值。

【问题讨论】:

    标签: php sql-server-2005


    【解决方案1】:

    嗯,我自己直接在sql里整理出来的。

    我更改了类似于下面的 where 子句:

        case when @field1 is '5' then field1 else @field1 end
    

    然后我在 php 的列表框中添加了值“5”,如下所示

    <select name="field1" style="margin-bottom:3px;"> 
    <option value="5" <?php echo $field1 == '5' ? $attr : ''; ?>>Select All</option>
    <option value="xyz" <?php echo $field1 == 'xyz' ? $attr : ''; ?>>xyz</option>
    <option value="abc" <?php echo $field1 == 'abc' ? $attr : ''; ?>>abc</option>
    <option value="def" <?php echo $field1 == 'def' ? $attr : ''; ?>>abc</option>
    </select>
    

    【讨论】:

      猜你喜欢
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-14
      • 2013-06-17
      • 1970-01-01
      • 2013-12-09
      • 1970-01-01
      相关资源
      最近更新 更多