2017-02-04 69 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似乎問題是我從數據庫中選擇的值爲下拉框。當我試圖向前提交選定的值時,它不發送任何值。 –

相關問題