2015-10-14 52 views
1

我想在HTML中做一個下拉菜單,但我想讓它的默認值由PHP變量的值決定。我想用JavaScript做到這一點,但最終出現了着名的「Uncaught ReferenceError:$ is not defined」錯誤:/。PHP變量超出了Javascript的範圍,我如何獲得它的範圍?

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"> 
     <option value="Article">Article</option> 
     <option value="Code">Code</option> 
     <option value="News">News</option> 
     <option value="Project">Project</option> 
    </select></br> 
    <script> 
     document.getElementById("Type").selectedIndex = <?php echo '$te'; ?>; 
    </script> 
</form> 

我試着放置在頁面上其他地方的腳本,但沒有成功:/。我懷疑變量超出範圍,但我不知道如何恢復:/。

+1

替換'<?php echo'$ te'; ''''用''<?php echo $ te; '>' – Thaillie

+0

PHP或JavaScript引發錯誤?這段代碼創建的JavaScript是什麼? – David

回答

4

它應該是 -

<select name="Type" id="Type"> 

而且

document.getElementById("Type").selectedIndex = '<?php echo $te; ?>'; 
+0

那麼工作,但事實證明,我也是一個白癡。雖然這解決了我得到的錯誤,但也表明我試圖通過id選擇下拉列表的值,而不是變量$ te的值。 *捂臉* – BadAtPHP

1

提供$te是0和3之間的整數,那麼你需要:

  1. 給你選擇一個ID屬性:

    <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>

  2. 刪除引號areound的PHP變量itsself並將其放置在html:

    <script> document.getElementById("Type").selectedIndex = "<?php echo $te; ?>"; </script>

0

對不起,不回答這個問題,但你不應該使用mysql_,它棄用和不安全的(見PHP Manual)。使用MySQLi或PDO。