我正在尝试创建一个网页,其中包含由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>
下拉不会填充 - 我一直在打我的头,但无法弄清楚原因。 有什么见解吗?
答案 0 :(得分:0)
除此之外,基于http://www.w3schools.com/jsref/met_select_add.asp,您注释掉的代码似乎是正确的,除了索引为NULL。如果您不想分配索引,则忽略索引。
我指的是代码:
var Terms = document.createElement("option");
Terms.text = termscode[i];
Select1.add(Terms);