別のselectのオプションに基づいてselectのオプションを変更する際に問題が発生しました。以下は、機能するコードです。
dropdown2.innerHTML = "<?php echo($SQLFormElements->GetColumnAsOptions('SELECT `field2` FROM `table2` WHERE `field1` = \'8\' ')); ?>";
説明:
2つのデータベーステーブルがあります:table1
とtable2
。table1
がありfield1
ます。table2
フィールドfield2
とfield1
。SQLFormElements
は、mysqlクエリ(この場合はselect要素のオプション)に基づいてhtml要素をエコーアウトするphpファイルです。dropdown1
値が含まれていfield1
ます。の値に基づいて値をdropdown2
表示する必要があります。つまり、の選択された項目です。field2
field1
dropdown1
とにかく、上記のコードは正常に機能しますが、値を取得するのではなくハードコーディングしました。これは、次のようなことを行う場合です。
var selectedItem = document.getElementById("ddField1");
dropdown2.innerHTML = "<?php echo($SQLFormElements->GetColumnAsOptions('SELECT `field2` FROM `table2` WHERE `field1` = \'" + selectedItem + "\' ')); ?>";
それは機能しません、なぜか考えてください!?私はちょっと困惑しています。念のため、最初のコードスニペットは機能します。
私は次のことを試しました:
- 変数を整数として解析します(私のテーブルのfield1は整数型です)
- where句で引用符を省略します
- 引用符は省略しますが、where句の値をハードコーディングします