這是我在我的網頁上遇到的一個非常奇怪的問題。我目前有一個使用perl和javascript填充數據庫數據的下拉列表,但下拉列表不顯示我從數據庫收到的值。下拉列表中的值不顯示
我目前擁有的代碼如下:
my $dataX = ${ConnectToDatabase($main::edsUGCar, $main::databaseEnv)};
$resultSet = $dataX->Execute("select vendor from dex_vendor_info group by vendor");
my @list_of_vendors;
while(!$resultSet->EOF) {
push @list_of_vendors, $resultSet->Fields("vendor")->Value;
$resultSet->MoveNext;
}
$list_of_vendors_json = encode_json(\@list_of_vendors);
print <<ONE;
<html>
<body>
<h4> Test Vendor Array Javascript </h4>
<p id="demo"</p>
<form id="myForm">
<select id="selectNumber">
<option>Choose a Vendor</option>
<script type="text/javascript" language="JavaScript">
var list_of_vendors = $list_of_vendors_json;
var select = document.getElementById("selectNumber");
for(var i = 0; i < list_of_vendors.length; i++) {
var opt = list_of_vendors[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt;
select.appendChild(el);
}
</script>
</select>
</form>
</body>
</html>
ONE
的HTML源代碼,當我檢查的下拉列表中元素的輸出顯示:
<SELECT id=selectNumber> <OPTION selected>Choose a Vendor</OPTION>
<SCRIPT language=JavaScript type=text/javascript>
var list_of_vendors = ["3D Systems","3DSystems","3M"];
var select = document.getElementById("selectNumber");
for(var i = 0; i < list_of_vendors.length; i++) {
var opt = list_of_vendors[i];
var el = document.createElement("option");
el.text = opt;
el.value = opt ;
select.appendChild(el);
}
</SCRIPT>
<OPTION value="3D Systems"></OPTION> # Info Missing here after the `>`
<OPTION value="3DSystems"></OPTION>
<OPTION value="3M></OPTION>
</SELECT>
包括['use strict;'](http://perldoc.perl.org/strict.html)和['use warnings;'](http://perldoc.perl.org/warnings.html)每個perl腳本的頂部。對後者很好,但是真的需要前者,而且你已經足夠長時間已經聽過幾次了。 – Miller
當我把'嚴格'使用時,我的網站停止工作,所以我把它關掉了 – koala421
['use strict;'](http://perldoc.perl.org/strict.html)是爲了告訴你關於你的代碼的問題。而不是忽略問題,修復你的代碼! – Miller