PHP变量超出了Javascript的范围,我如何在范围内获取它?

时间:2015-10-14 12:27:28

标签: javascript php html

我正在尝试在HTML中下拉,但我希望它的默认值由PHP变量的值决定。我想用JavaScript做到这一点,但我最终得到了着名的“Uncaught ReferenceError:$ is not defined”错误:/。

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>

我尝试将脚本放在页面上的其他位置但没有成功:/。我怀疑该变量超出了范围,但我不知道如何将其恢复原状:/。

3 个答案:

答案 0 :(得分:4)

应该是 -

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

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

答案 1 :(得分: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. 删除自己的php变量引用并将它们放在html中:

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

答案 2 :(得分:0)

很抱歉没有回答这个问题,但你不应该使用mysql_,它已被弃用且不安全(参见PHP Manual)。使用MySQLi或PDO。