动态填充来自mysql的选择输入

时间:2011-11-16 22:51:52

标签: php joomla

您好我正在尝试使用MySQL填充整个下拉列表但我无法让它工作,您能帮忙吗?

我的代码:

$database=& JFactory::getDBO();

$database->setQuery('SELECT training_id,training,trainingDate FROM training ');

$result = $database->loadObjectList();

 echo '<select name="whatever">';
while($row = mysql_fetch_array($result)) {
        echo '<option value="$row[training_id" />';
    }

echo '</select>';

6 个答案:

答案 0 :(得分:5)

您的echo字符串不允许嵌入变量,因为您使用单引号而不是双引号。

实现此回声:

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

答案 1 :(得分:1)

不知道输出是什么,很难知道这是否是唯一的问题,但代码中的明显错误是:

echo '<option value="$row[training_id" />';

因为它是单引号,所以不解释变量。你需要使用双引号(并关闭方括号!):

echo "<option value=\"{$row['training_id']}\" />";

请注意,我已经将变量解释的样式更改为使用花括号:我相信这更容易阅读和更清晰。

答案 2 :(得分:1)

除了使用单引号外,您还可以:

  1. 缺少一个方括号。
  2. 缺少<option>的结束标记。
  3. 您可能希望将输出更改为此类型,以便向用户显示一些选项文本:

    echo '<select name="whatever">';
    while($row = mysql_fetch_array($result)) {
        echo '<option value="' . $row['training_id'] . '"> ' . $row['training'] . '</option>';
    }
    echo '</select>';
    

答案 3 :(得分:1)

$database= &JFactory::getDBO();
$database->setQuery('SELECT training_id,training,trainingDate FROM training');
$result = $database->loadObjectList();

echo '<select name="whatever">';
foreach ($result as $row) {
   echo '<option value="'.$row->training_id.'" />';
}
echo '</select>';

使用#__表格前缀。

答案 4 :(得分:1)

$database= &JFactory::getDBO();
$database->setQuery('SELECT training_id,training,trainingDate FROM training');
$result = $database->loadObjectList();

echo '<select name="whatever">';
foreach ($result as $row) {
echo '<option value="'.$row->training_id.'" />';
}
echo '</select>';

此代码有效,但使用空选项填充列表。我必须在下面显示一个简单的回声,并且工作得很好。出于某种原因,$ row-&gt; teremnev对我来说是空的。我确定这不是正确的方法,但它确实有效。

$db =& JFactory::getDBO();
$query = "SELECT teremnev FROM #__teremlista";
$db->setQuery($query);
$result = $db->loadResultArray(); 
echo '<select name="termek">' ;
foreach ($result as $row) {
echo '<option value="'.$row->teremnev.'" />';
echo $row;
}
echo '</option>';
echo '</select>';

答案 5 :(得分:0)

<select>
<option>Select Training</option>

while($row = mysqli_fetch_array($result))
{
 echo "<option>". $row['training_name']."</option>";

}
</select>