2016-11-20 121 views
1

嗨,我有一些問題使用MYSQLI填充下拉框。 我到目前爲止的代碼是:使用MYSQLI來填充下拉框 - PHP

<?php 
session_start(); 
if (!isset($_SESSION['myusername'])){ 
    header("location:index.php"); 
} 
include_once './includes/checkperm.php'; 
$permlevel = check_perm($_SESSION['myusername']); 
if ($permlevel < "90") { 
    header("location:permtolow.php"); 
    exit; 
} 
require_once($_SERVER['DOCUMENT_ROOT'].'/../dbcon.php'); 
?> 

<div class="label">Select Name:</div> 
<select name="names"> 
<option value = "">---Select---</option> 

<?php 
$queryusers = "SELECT username FROM finance"; 
$query = mysqli_query($con, $queryusers); 
while ($d=mysqli_fetch_array($query)) { 
echo "<option value='{".$d['username']."}'>".$d['username']."</option>"; 
} 
echo '</select>' 
?> 

不幸的是下拉框保持爲空。 我可能錯過了一些簡單的東西。

+0

'回聲 「<選項值='{」 $ d。[ '用戶名'。「}」>「;'這裏的值將看起來像'{Hampkade}'(添加'{} '在它周圍)。但你實際上並沒有輸出任何東西,應該是''之間的東西 - 如果這不能回答你要找的東西,你需要啓用錯誤報告'error_reporting(E_ALL);' ini_set('display_errors',1);' – Qirel

+0

不是但是。檢查http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_option –

回答

1

的問題是,當我打電話給需要對數據庫進行連接: 這裏是固定腳本,將「require」移動到第二個PHP塊。

<?php 
session_start(); 
if (!isset($_SESSION['myusername'])){ 
    header("location:index.php"); 
    exit; 
} 
include_once './includes/checkperm.php'; 
$permlevel = check_perm($_SESSION['myusername']); 
if ($permlevel < "90") { 
    header("location:permtolow.php"); 
    exit; 
} 
?> 


<?php 
require($_SERVER['DOCUMENT_ROOT'].'/../dbcon.php'); 
$queryusers = "SELECT * FROM finance"; 
$query = mysqli_query($con, $queryusers) or die (mysqli_error()); 
echo '<div class="label">Select Name:</div>'; 
echo '<select username="username">'; 
echo '<option value = "">---Select---</option>'; 
while ($d=mysqli_fetch_array($query)) { 
echo "<option value='{".$d['username']."}'>".$d['username']."</option>"; 
} 
echo '</select>'; 
?> 
0

您的代碼存在以下問題。
如果你把它簡化到最低限度

1 #!/usr/bin/php 
    2 <?php 
    3 $ar=array('one','two','three'); 
    4 foreach ($ar as $val){ 
    5 echo "<option value='{".$val."}'></option>"; 
    6 printf("\n"); 
    7 } 
    8 ?> 

並運行它 - 你將最終

[[email protected] ~]# ./phptest.php 
<option value='{one}'></option> 
<option value='{two}'></option> 
<option value='{three}'></option> 

看這個問題?
您在輸出標籤之間
遺漏值應該是這樣的

[[email protected] ~]# ./phptest.php 
<option value='{one}'>one</option> 
<option value='{two}'>two</option> 
<option value='{three}'>three</option> 

所以,你需要做的就是這個

echo "<option value='{".$d['username']."}'>".$d['username']."</option>"; 
+0

我已經調整了代碼,但不幸的是下拉框仍然是emtpy。 – Hampkade

+0

清理您的瀏覽器緩存。 GET被緩存。您還可以在瀏覽器中激活開發人員模式併發布服務器響應,以便我們可以看到您的瀏覽器實際上正在接收什麼。 –

+0

這是來自服務器的響應: '

Select Name:
<選擇用戶名= 「用戶名」> <期權價值= 「」> ---選擇--- ' – Hampkade