2014-05-24 13 views
0

我一直在試圖弄清楚爲什麼我的PHP變量在聲明下拉列表後不工作。我在迴應聲明前的所有行上的變量後,將其縮小到下拉列表中,並且我發現該變量在echo "<select id ='fav' name='fav'>";之後直接回顯。爲什麼會發生這種情況?如何修復?下拉聲明後PHP變量將不起作用

<?php 
$fruit= $_POST['fruit']; 
echo $fruit; 
echo "<table>"; 
echo $fruit; 
echo "<tr>Favourite Fruit:"; 
echo $fruit; 
echo "<select id ='fav' name='fav'>"; 
echo $fruit; //this doesn't echo 
echo "<option value='Banana'>Banana</option>"; 
echo "<option value='Strawberry'>Strawberry</option>"; 
echo "<option value='No Preference'>No Preference</option>"; 
echo "</select>"; 
?> 
+0

你看過源代碼嗎? – Gumbo

+0

@Gumbo對不起,我不明白你是說如果我檢查變量來自哪裏? – Nassim

+0

其實'$水果'持有什麼? – Ranjith

回答

0

我想你想這個,如果你把裏面的東西

<select></select> 

,你必須使用

<option></option> 

或者你可以這樣做,

echo $fruit; //this doesn't echo 
    echo "<select id ='fav' name='fav'>"; 

,但不喜歡,

echo "<select id ='fav' name='fav'>"; 
echo $fruit; //this doesn't echo 

完整的代碼將

<?php 
$fruit= $_POST['fruit']; 
echo $fruit; 
echo "<table>"; 
echo $fruit; 
echo "<tr>Favourite Fruit:"; 
echo $fruit; 
echo "<select id ='fav' name='fav'>"; 
echo '<option value="'; 
echo $fruit . '">'; 
echo $fruit; 
echo '</option>'; 
echo '</select>'; 
......................... 
......................... 
......................... 
?> 
0

因爲你忘記關閉選擇tag.close選擇標籤:

  <?php 
      $fruit= $_POST['fruit']; 
      echo $fruit; 
      echo "<table>"; 
      echo $fruit; 
      echo "<tr>Favourite Fruit:"; 
      echo $fruit; 
      echo "<select id ='fav' name='fav'></select>"; 
      echo $fruit; 
      ?> 
+0

我在包含所有選項後關閉它... – Nassim

+0

你不行不行,你可以發佈所有的代碼? – Ravg

1

您不能直接打印任何價值。試試這個會對你有用。

<?php 
         $fruit= $_POST['fruit']; 
         echo $fruit; 
         echo "<table>"; 
         echo $fruit; 
         echo "<tr>Favourite Fruit:"; 
         echo $fruit; 
         echo "<select id ='fav' name='fav'>"; 
         echo "<option value='".$fruit."'>".$fruit."</option>"; 
         ......................... 
         ......................... 
         echo "<option value='No Preference'>No Preference</option>"; 
         </select> 
         ?> 
1

如果您查看使用瀏覽器的「查看源代碼」選項生成的HTML,您可能會看到echo工作正常。你看不到它的原因是你試圖把文字放在<select>裏面,但是不在<option>裏面,所以沒有地方出現在屏幕上。這與它是一個PHP變量無關。

+0

問題是我在下拉菜單中也有一個SQL查詢,它沒有被設置爲變量?所以SQL查詢可以在下拉框中設置?或者這也是一個問題? – Nassim

+0

PHP不知道它是否在一個下拉列表中,所以不,這個問題是不相關的。然而,你用來調試的方法是行不通的,因爲你不能在那裏使用'echo'並期望它顯示在屏幕上。 – IMSoP

+0

嗯,我知道現在,我會繼續調試,看看問題出在哪裏。謝謝 – Nassim

0

您的代碼應該是這樣的,您不能在沒有任何option標記的情況下致電$fruit

$fruit= $_POST['fruit']; 
echo "<select id ='fav' name='fav'>"; 
echo '<option value="'; 
echo $fruit . '">'; 
echo $fruit; 
echo '</option>'; 
echo '</select>'; 
.........................