2014-05-24 73 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>'; 
.........................