2014-10-11 66 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