2015-10-15 70 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

相關問題