2017-02-04 73 views
0

我花了一些时间试图让下拉框正常工作,从数据库中获取部门和位置的值。这工作正常,我添加了额外的日期字段,因此客户可以选择特定时期,地点和部门的记录。当我执行运行departmentReport.php的表单时,即使试图回显每个值,页面也会返回空白,如下所示。无法在下拉框中发布从db中选择的值

<form id="departmentReport" action="departmentReport.php" method="get" onsubmit="#"> 
     <fieldset id="departmentReport"> 
      <h3>Department Report</h3> 
      <br> 
      <?php 
      include 'includes/DbCon.php'; 
     $sql = "select department_name from departments"; 

      echo"<select name = 'departments' value=''>Department Name</option>"; 

      foreach ($conn->query($sql) as $row){ 
       echo "<option value=$row[department_name]>$row[department_name]</option>";} 
      echo "</select>"; 

      ?> 
      <br></br> 
    <?php 
      include 'includes/DbCon.php'; 
     $sql = "select `location_name` from `location`"; 

      echo "<select name = 'location' value=''>Location Name</option>"; 

      foreach ($conn->query($sql) as $row){ 
       echo "<option value=$row[location_name]>$row[location_name]</option>";} 
      echo "</select>"; 

      ?> 
      <br></br><br> 
       <label for="date">Date From<br></label> 
       <input id="date1" type="date" name="dateF" 
         autofocus="true"/> 
      <br> 
      <br> 
       <label for="date">Date To<br></label> 
       <input id="date2" type="date" name="date2" 
         autofocus="true"/> 
      <br> 
      <br> 
      <input type="submit" class="button" value="Submit"> 

在提交departmentReport.php被付诸行动

<?php 


include "../includes/dbCon.php"; //* CONNECTION TO DATABASE 

$department = mysqli_real_escape_string($conn, $_POST['departments']); //* CLEAN DATA, THIS DELETES ANY SPECIAL CHARACTERS THAT CAN BE USED FOR MALICIOUS CODE 
$location = mysqli_real_escape_string($conn, $_POST['location']); //* CLEAN DATA, THIS DELETES ANY SPECIAL CHARACTERS THAT CAN BE USED FOR MALICIOUS CODE 
$date1 = mysqli_real_escape_string($conn, $_POST['date1']); //* CLEAN DATA, THIS DELETES ANY SPECIAL CHARACTERS THAT CAN BE USED FOR MALICIOUS CODE 
$date2 = mysqli_real_escape_string($conn, $_POST['date2']); //* CLEAN DATA, THIS DELETES ANY SPECIAL CHARACTERS THAT CAN BE USED FOR MALICIOUS CODE 

echo "$department"; 
echo "$location"; 
echo "$date1"; 
echo "$date2"; 

这带来下面的结果..

department report form

result on submit

但是调整后什么时候能得到我见我选择的值为 http://localhost:8888/departmentReport.php?departments=Marketing&location=London&dateFrom=02%2F01%2F2017

我不确定为什么我看不到值时回声!

任何援助将不胜感激。

回答

0

您检索发布数据时,变量是错误的

选择部门的html代码:

<select name = departments value=''>Department Name</option> 

在选择的形式,名称是“部门”,但是当你在PHP中检索它们,它是:

$_POST['departmant_name'] 

这是错误的输入变量名称。它应该是:

$_POST['departments'] 

另外,请把报价上的选择名称

<select name = 'departments' value=''>Department Name</option> 

所有其他变量也是错误的标记。

看起来像你输入数据库列名称,而不是表单输入名称。

编辑: 我也注意到,在您的表单,表单“方法”设置为“GET”,而你的PHP代码是使用“POST”

+0

我不认为这是我做的情况下但是当我点击提交时,下面的页面变成空白。但我可以把回声“测试”;结果如预期。只要我回显“$ location”;例如该页面是空白的。 –

+0

这很奇怪。正常表单是否提交作品?尝试制作简单的表单,可能有1或2个输入文本框,然后尝试提交并显示它的值。 此外,你可以尝试只使用$ _POST []没有mysqli_real_escape_string(),看看它是否工作 –

+0

我现在有一个游戏感谢afif似乎问题是我从数据库中选择的值为下拉框。当我试图向前提交选定的值时,它不发送任何值。 –

相关问题