我有2個下拉菜單,而且我在第一個菜單中選中某個菜單後,使用開關填充第二個菜單。這主要只是一個實驗,因爲之前我做過的jquery事情似乎很慢。如果任何人有更好,更快的方式做到這一點,我都耳熟能詳。但我仍然想要一個答案,因爲它現在只是讓我惱火。Javascript switch not take passed variable
第一個下拉菜單onchange="chngprog(this)"
調用這個函數
function chngprog(facility)
{
if(facility.id == 'facilityview'){
var select = document.getElementById('programview');
} else {
var select = document.getElementById('program');
}
var testid = facility.value;
switch(testid){
<?php global $__CMS_CONN__;
$sqlqry = "SELECT * FROM facility_db";
$stmt = $__CMS_CONN__->prepare($sqlqry);
$stmt->execute();
$listfacility = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($listfacility as $case)
{
echo "case ".$case['id'].":\n";
echo "select.options = '';";
$boom = explode(";", $case['programs']);
foreach($boom as $program)
{
echo "select.options[select.options.length] = new Option('$program', '$program');\n";
}
echo "break;\n";
}
?>
}
}
的PHP創建所有從數據庫中的情況下,因爲有50多個,大概沒有幫助的速度的因素。
頂部的if語句是要確定它正在查看的是哪一組下拉,因爲有2組可以做同樣的事情,但是出於不同的目的。
問題是讓交換機打一個案子。我已經發布了警報以查看會發生什麼,並且所有值都是正確的,但除非指定數字,否則它絕不會遇到任何情況。如果我把switch(20)
打到案例20,並將選項添加到第二個下拉列表中,就像它應該那樣。
那麼爲什麼開關沒有評估我放入的變量呢?
我的猜測是'facility.value'未定義 – 2011-03-15 20:58:04
您不顯示您在哪裏調用chongprog(facility),這是testid應該來自哪裏。 – 2011-03-15 20:59:01
如果你在案件中發出警告,案件是否觸發,或者你只是沒有看到你期待的結果? – Dutchie432 2011-03-15 20:59:03