我试图选择的值,下拉框称为"类型",这等于PHP变量的值称为"$Type"通过使用Javascript。我知道在JS中有一个"selectindex"函数,但"$Type"不包含数字,只包含文本。
我试着使用在这个网站上找到的循环,但这对我不起作用。
PHP:while(list($ArtikelID, $Type) = mysql_fetch_array($result))
{
$arid = $ArtikelID;
$te = $Type;
}
HTML + JS:
<form name="send" method="post" action="editartticlesdef.php">
articlenumber: </br>
<input readonly="readonly" name="ArticleID" value=<?php echo $arid ?>></br>
Type: </br>
<select name="Type" id="Type">
<option value="Article">Article</option>
<option value="Code">Code</option>
<option value="News">News</option>
<option value="Project">Project</option>
</select></br>
<script>
window.onload = function SelectType()
{
var sel = document.getElementById('Type');
var val = document.getElementById('<?php echo $te; ?>');
for(var i = 0, j = sel.options.length; i < j; ++i)
{
if(sel.options[i].innerHTML === val)
{
sel.selectedIndex = i;
break;
}
}
}
</script>
</form>
我不使用Ajax或Jquery,所以这就是为什么我试图使用循环。但由于某种原因,它不起作用。下拉菜单在加载时仍然默认选择第一个选项
你可以这样做,使用PHP。
<?php
$listArticle = array(
'Article',
'Code',
'News',
'Project'
);
?>
<select name="Type" id="Type">
<?php
foreach($listArticle as $article)
{
$selected = '';
if($article == $te)
{
$selected = 'selected="selected"';
}
echo '<option '.$selected.'>'.$article.'</option>';
}
?>
</select></br>
对于选择菜单,selectedIndex
中引用的index
是指菜单中选项项索引的整数,而不是其中包含的值。
对于javascript,尝试:
if( sel.options[ sel.options.selectedIndex ].value === val ){
sel.selectedIndex = i;
break;
}
您根本不需要for循环,而是(基于此):
window.onload = function SelectType()
{
var sel = document.getElementById('Type');
var val = document.getElementById('<?php echo $te; ?>');
sel.value = val;
}
这要求在选项中显示val