Joomla>;所选下拉列表未传递到服务器


Joomla> Selected Drop Down Not passing to Server

我知道我在这里缺少了一些基本的东西,但就我的一生而言,我无法弄清楚这一点。

我需要隐藏的输入字段来反映用户在下拉列表中选择的课程。

=============================================

<p><b>1. Select Course:</b></p>
<?php
$db = JFactory :: getDBO();
$query = "select name from #__guru_category  order by name ASC";
$db->setQuery($query);
$result = $db->loadObjectList();
$options = array(); 
$options[] = JHTML::_('select.option','Select Course');
foreach($result as $row)
{
$options[] = JHTML::_('select.option', $row->name);
}
$dropdown = JHTML::_('select.genericlist', $options, 'class="inputbox"', 'subject', 'value', 'text');
echo $dropdown; 
?>
<p><b>2. Select assignment file to upload:</b></p>
<p><input type="file" name="fileToUpload" id="fileToUpload"></p>
**<input type="hidden" name="subject" id="subject" value="">**
<p><input type="submit" value="Upload Assignment File" name="submit"></p>
</form>

==============================================

$dropdown = JHTML::_('select.genericlist', $options, 'class="inputbox"', 'subject', 'value', 'text');

您错误地放置了参数值orderlist

genericlist($arr, $name, $attribs=null, $key= 'value', $text= 'text', $selected=NULL, $idtag=false, $translate=false)

点击链接:https://docs.joomla.org/API15:JHTMLSelect/genericlist

这里是解决方案

<?php
$db = JFactory :: getDBO();
$query = "select name from #__guru_category  order by name ASC";
$db->setQuery($query);
$result = $db->loadObjectList();
$options = array(); 
$attr  = 'onchange="UpdateUsername(this.options[this.selectedIndex].value);"';
$attr .= ' class="inputbox"';
$options[] = JHTML::_('select.option','Select Course');
foreach($result as $row){
    $options[] = JHTML::_('select.option', $row->name);
}
$dropdown = JHTML::_('select.genericlist', $options,'subject',$attr, 'value', 'text');
echo $dropdown; 
?>
<p><b>2. Select assignment file to upload:</b></p>
<p><input type="file" name="fileToUpload" id="fileToUpload"></p>
<input type="hidden" name="subject" id="subject" value="">
<p><input type="submit" value="Upload Assignment File" name="submit"></p>
<script type="text/javascript">
function UpdateUsername(selected){
 document.getElementById(subject).value= selected;  
}
</script>