私はColdFusion8/9/10を定期的に使用しています。以下のコードは、CF9とCF10でうまく機能します。(私は9でそれを開発しました)。ただし、CF8では機能しません。
CF9およびCF10で以下のコード(下部)を実行すると、すぐ下にHTML結果が表示されます。
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option selected="" value="3">Option 3</option>
</select>
CF8で以下のコードを実行すると、次のエラーが発生します。
The SELECTED parameter to the WrapOption function is required but was not passed in.
CF8では、このコードを変更して、CF8で「選択された」パラメーター(またはその他のパラメーター)をオプションにする方法を教えてください。
<cfscript>
Options = WrapOption("Option 1", 1);
Options = Options & WrapOption("Option 2", 2);
Options = Options & WrapOption("Option 3", 3, "Selected");
SelectBox = WrapSelect(Options);
writeOutput(SelectBox);
// WRAP OPTION
function WrapOption(Content, Value, Selected) {
LOCAL.Content = ARGUMENTS.Content;
LOCAL.Properties = " value='#ARGUMENTS.Value#'";
// SELECTED
if (structKeyExists(ARGUMENTS, "Selected")) {
LOCAL.Properties = LOCAL.Properties & " selected";
}
LOCAL.Item = "<option #LOCAL.Properties#>#LOCAL.Content#</option>";
return LOCAL.Item;
}
// WRAP SELECT
function WrapSelect(Options, Class, ID) {
LOCAL.Options = ARGUMENTS.Options;
LOCAL.Properties = "";
// CLASS
if (structKeyExists(ARGUMENTS, "Class")) {
LOCAL.Properties = LOCAL.Properties & " class='#ARGUMENTS.Class#'";
}
// ID
if (structKeyExists(ARGUMENTS, "ID")) {
LOCAL.Properties = LOCAL.Properties & " id='#ARGUMENTS.ID#'";
}
LOCAL.Item = "<select #LOCAL.Properties#>#LOCAL.Options#</select>";
return LOCAL.Item;
}
</cfscript>