2015-10-15 73 views
0

我试图通过使用Javascript来选择名为“类型”的下拉列表的值,该值等于名为“$类型”的PHP变量的值。我知道JS中有一个“selectindex”函数,但“$ Type”不包含仅包含数字的文本。选择下拉值等于使用javascript的php变量

我试图使用我在这个网站上找到的循环,但那对我没有用。

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的,所以这就是为什么我试图使用循环。但是由于某种原因它不起作用。加载时,下拉菜单仍会在默认情况下选择第一个选项。

+0

你不需要javascript来显示选定的值。你可以写条件来设置'selected'属性' – Rayon

回答

1

你能做到这样,使用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> 
+0

This Works!我不得不稍微修改一下,你忘了一个;你的if循环应该是“$ te”而不是“$ Type”。所以我编辑了你的答案,但它的工作。谢谢! – BadAtPHP

+0

是的,谢谢你纠正它。我刚刚批准你的修改。 – ThinkTank

0

selectedIndex中提到的用于选择菜单的index是一个整数,指的是菜单中的选项条目索引 - 而不是其中包含的值。

要使用JavaScript,请尝试:

if(sel.options[ sel.options.selectedIndex ].value === val){ 
     sel.selectedIndex = i; 
     break; 
} 
+0

也不起作用,它在加载时仍然会显示下拉菜单的第一个选项。 – BadAtPHP

0

你不需要在for循环可言,而不是做(基于this):

window.onload = function SelectType() 
    { 
     var sel = document.getElementById('Type'); 
     var val = document.getElementById('<?php echo $te; ?>'); 
     sel.value = val; 
    } 

这需要VAL的选项来呈现。

+0

我试过你的代码,它导致我的下拉列表变成空白。 – BadAtPHP

+0

那么,正如我所说的,选项必须有一个值与val相同。否则会导致选择空白 – Tareq

相关问题