PHP - 访问在Combobox中选择的值

时间:2011-01-16 05:45:56

标签: php post combobox

我想编写一个代码,让我从下拉列表中选择并点击按钮从mysql数据库加载数据。但是我无法访问下拉菜单中选择的值。我试图访问他们是$_POST['var_name']但仍然无法做到。

我是PHP的新手。

以下是我的代码:

 <?php

      function load(){
       $department = $_POST['dept'];
       $employee = $_POST['emp'];

       //echo "$department";
       //echo "$employee";

       $con = mysqli_connect("localhost", "root", "pwd", "payroll");
       $rs = $con->query("select * from dept where deptno='$department'");
       $row = $rs->fetch_row();
       $n = $row[0];
       $rs->free();
       $con->close();
      }

 ?>
    <html>
     <head>
      <title>Payroll</title>
     </head>

     <body>
      <h1 align="center">IIT Department</h1>
      <form method="post">
      <table align="center">
       <tr>
        <td>
          Dept Number: 
          <select name="dept">
               <option value="10" selected="selected">10</option>
               <option value="20">20</option>
               <option value="30">30</option>
               <option value="40">40</option>
          </select>


            </td>

        <td>
             <input type="button" value="ShowDeptEmp" name="btn1">        
        </td>
        <td>
          Job: 
          <select name="job">
               <option value="President" selected="selected">President</option>
               <option value="Manager">Manager</option>
               <option value="Clerk">Clerk</option>
               <option value="Salesman">Salesman</option>
               <option value="Analyst">Analyst</option>
          </select>
        </td>
        <td>
             <input type="button" value="ShowJobEmp" name="btn1">
        </td>
       </tr>
      </table>
      </form>
        <?php if(isset($_POST['dept']) && $_POST['dept'] != "") load();  ?>        
     </body>
    </html>

2 个答案:

答案 0 :(得分:1)

更改按钮以提交

 <input type="submit" value="ShowDeptEmp" name="btn1">

 <input type="submit" value="ShowJobEmp" name="btn2">

答案 1 :(得分:0)

使用prepared statement而不是在您的SQL中回显$department。如果有人发布了'; DROP TABLE dept;,他们可以运行任意SQL命令(请参阅SQL Injection)。

如果您不想使用预备声明,则可以在转义$department时使用mysql_real_escape_string()