2014-10-11 55 views
1

我有一個帶有選擇選項的下拉列表,其中寫入的信息是通過查詢從數據庫中檢索的。下拉列表和PHP

<select name="moto"> 
     <?php 
     include 'connessione.php'; 
     $qry = "SELECT NomeOggetto FROM Oggetto"; 
     $result = mysql_query($qry); 
     while($row = mysql_fetch_array($result)) 
     { 
      echo '<option value='.$row["NomeOggetto"].'>'.$row["NomeOggetto"].'</option>'; 
     } 
     ?> 
</select> 

的問題是,如果在菜單我有摩托車的名稱用(川崎忍者)的名字之間有一個空格,例如,當我把它發送到PHP頁面使用POST方法只顯示川崎。我如何顯示包含空間的全名?這是PHP頁面:

<?php echo $_POST['moto']; ?> 
+0

[不要在應用程序中使用'mysql_ *';使用'mysqli_ *'](http://stackoverflow.com/questions/8891443/when-should-i-use-mysqli-instead-of-mysql)。 – 2014-10-11 15:10:55

+0

如果我使用mysqli不起作用。值將不會顯示在下拉列表中。 – 2014-10-11 15:13:02

+0

'mysqli_ *'會比* mysql_ *更好*。在你的代碼中可能只是一個錯誤 - 你最好問這個問題,再加上這個問題。 – 2014-10-11 15:14:36

回答

3

你必須把周圍的屬性值引號在HTML

echo '<option value='.$row["NomeOggetto"].'>'.$row["NomeOggetto"].'</option>'; 

echo '<option value="'.$row["NomeOggetto"].'">'.$row["NomeOggetto"].'</option>'; 
+0

非常感謝,它的工作。這樣一個愚蠢的錯誤。你做得很好。 – 2014-10-11 15:14:42

0

嘗試與發送urlencode並解碼它。

您也可以打印出來作爲echo " '$_POST['moto']' "將打印word1 word2爲1字符串,因爲它被包裹在報價:

嘗試print_r($_POST);,看看是否要發佈整個字符串。

+0

HTML'select'會自動對數據進行urlencode。 – 2014-10-11 15:15:39