2015-10-14 59 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。