将PHP数组导入Javascript数组/下拉列表

时间:2014-08-18 15:46:17

标签: javascript php html

我正在尝试创建一个网页,其中包含由Oracle数据库查询提供的值填充的下拉列表。 我使用的代码是在查询Sql Server之前为我工作的代码,但是为Oracle修改了代码。 这实际上超出了我的技能水平 - 我更像是一个系统管理员而不是开发人员:但它只是其中一个没有其他人可以做到的情况。 这是查询Oracle的PHP代码(var_dump用于验证数组是否填充了Oracle的值):

**<?php
// Create connection to Oracle
$conn = oci_pconnect("user", "password", "//oracleserver/prod");
$query = 'SELECT DISTINCT terms_cd from terms ORDER BY terms_cd';
$stid = oci_parse($conn, $query);
$r = oci_execute($stid);
$j = 0;
    while ($row = oci_fetch_array($stid, OCI_RETURN_NULLS+OCI_ASSOC)) 
    {
        foreach ($row as $item) {
             $termscode[] = array("id" => $j, "val" => $item);
        $j++;
        }
    }

    //Verify Array
    //var_dump($termscode);
   $jsonTermsCode = json_encode($termscode);
 ?>**

这是JavaScript:

<script type='text/javascript'> 
<?php>
    echo "var termscode = $jsonTermsCode; \n";
?>
    function loadTermsCode()
    {
        var select1 = document.getElementById("termscodeSelect");
        for(var i = 0; i < termscode.length; i++)
        {
            var Terms = document.createElement("option");
            //Terms.text = termscode[i];
            //Select1.add(Terms, null);
            select1.options[i] = new Option(termscode[i].val, termscode[i].id);
            echo select1.options[i]  
        }
    }   
</script>

这是HTML:

<body onload="loadFunc(), loadTermsCode()">
    <form id="f" method="post" name="VendorChange" >

<!--Div 1-->
    <div id="container">

    <!--Div 2-->
    <div id="divTabContainer">


               <fieldset>       
                <table>
                        <td class="dept">
                            Terms Code:
                        </td>

                    </tr>
                    <tr>
                        <td>
                            <select id="termscodeSelect" name="TermCode" >
                            </select>
                        </td>   

                    </tr>
                </table>
            </fieldset>     
     </div>
    </form>
</body>

下拉不会填充 - 我一直在打我的头,但无法弄清楚原因。 有什么见解吗?

1 个答案:

答案 0 :(得分:0)

&#34;回声&#34;你在javascript内部必须导致错误。回声&#34;回声&#34;你需要的javascript中的东西&#34; document.Write()&#34;。

除此之外,基于http://www.w3schools.com/jsref/met_select_add.asp,您注释掉的代码似乎是正确的,除了索引为NULL。如果您不想分配索引,则忽略索引。

我指的是代码:

var Terms = document.createElement("option");
Terms.text = termscode[i];
Select1.add(Terms);