我试图在php中的动态下拉字段中添加一个静态选项

时间:2014-04-11 20:02:59

标签: php mysql

我正在为我的小型企业开发基于内部网络的许可证跟踪应用程序。 Web过滤器包含一个动态下拉框,该框根据数据库中某个字段中的数据进行填充。

它运行良好,现在功能正常,但我想为它添加一些功能。

目前有两个下拉框,一个用于部门,一个用于软件。它的工作方式是,你设置这两个过滤器,它将输出一个表格,其中包含所有符合BOTH标准的记录。这样可以轻松查看每个部门订购和安装的特定应用程序的所有软件许可证。

我开始做的是使用它来跟踪已卸载或可用的许可证以降低软件成本,并重复使用更多。我想要做的是为每个字段添加一个静态ALL选项,以便选择与所选软件匹配的所有部门,或者显示与特定部门匹配的所有软件,并且在极少数情况下将两者都设置为全部它显示所有部门的所有软件。

以下是我现有的代码并且运行正常......

<?php

 echo "<p><a href='view.php'>View All</a> | <a href='un_view.php'>View Uninstalled</a> | <a href='view_paginated.php?page=1'>View Printable Version</a></p>";
 echo "<br>";

 // if there are any errors, display them
 if ($error != '')
 {
 echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>';
 }
 ?> 
<p><strong>Filter Options</strong></P>
 <?php    
 $sql2 = "SELECT DISTINCT dept FROM sw_lic";
 $sql3 = "SELECT DISTINCT sw_name FROM sw_lic WHERE sw_name != ''";
 $result2 = mysql_query($sql2);
 $result3 = mysql_query($sql3);
 ?>
       <form action="filter_view.php" method="POST">
           <p><select name="dept">
<?php
       while($nt=mysql_fetch_array($result2))
       {
       echo "<option name='dept' value=$nt[dept]>$nt[dept]</option>";
       }
?>
       </select>
       <select name="sw_name">
<?php
       while($st=mysql_fetch_array($result3))
       {
       echo "<option name='sw_name' value='$st[sw_name]'>$st[sw_name]</option>";
       }
?>
       </select>
<input type="submit" name="submit" value="Submit">
 </form>
 <?php 
 }




 // connect to the database
 include('connect-db.php');

 // check if the form has been submitted. If it has, start to process the form and save it to the database
 if (isset($_POST['submit']))
 { 
 // get form data, making sure it is valid
 $username = mysql_real_escape_string(htmlspecialchars($_POST['username']));
 $sysname = mysql_real_escape_string(htmlspecialchars($_POST['sysname']));
 $dept = mysql_real_escape_string(htmlspecialchars($_POST['dept']));
 $sw_name = mysql_real_escape_string(htmlspecialchars($_POST['sw_name']));
 $sw_ver = mysql_real_escape_string(htmlspecialchars($_POST['sw_ver']));
 $origin = mysql_real_escape_string(htmlspecialchars($_POST['origin']));
 $sw_key = mysql_real_escape_string(htmlspecialchars($_POST['sw_key']));

 // check to make sure all fields are entered
 if ($username == '' || $dept == '' || $sw_name == '' || $sw_ver == '' || $origin == '' || $sw_key == '')
 {
 // generate error message
 $error = 'ERROR: Please fill in all required fields!';

 // if either field is blank, display the form again
 renderForm($username, $sysname, $dept, $sw_name, $sw_ver, $origin, $sw_key, $error);
 }
 else
 {
 // save the data to the database
 mysql_query("INSERT sw_lic SET username='$username', sysname='$sysname', dept='$dept', sw_name='$sw_name', sw_ver='$sw_ver', origin='$origin', sw_key='$sw_key'")
 or die(mysql_error()); 

 // once saved, redirect back to the view page
 header("Location: view.php"); 
 }
 }
 else
 // if the form hasn't been submitted, display the form
 {
 renderForm('','','');
 }
?> 

如果有人能帮助我,我会非常感激。如果需要更多细节,请告诉我。

谢谢,

1 个答案:

答案 0 :(得分:0)

只需添加如下静态选项值:

<p><select name="dept">
    <option value="_all_">All</option>
<?php
       while($nt=mysql_fetch_array($result2))
       {
       echo "<option name='dept' value=$nt[dept]>$nt[dept]</option>";
       }
?>
       </select>
</p>

然后相应地修改您的查询。