Важное примечание: Большинство вещей, которые я хочу получить, закончены и работоспособны - единственная часть, которая не работает, это получение значения "value =", отличного от имени параметра select dropdown. Тем не менее, я собираюсь изложить все это в интересах любого, кто захочет использовать что-то подобное.
Цель: Когда пользователь нажимает переключатель, раскрывающееся меню в другом месте на странице изменяется, чтобы отображать различные значения, извлекаемые из запроса SQL.
Конкретно в этом примере пользователь выбирает академическую программу (скажем, доктора философии), и в раскрывающемся списке отображаются доступные даты начала.
Вот SQL-запрос, который получает доступные даты начала и форматирует их для Javascript:
$app_period_lookup_psyd = mssql_query("select app_period_id,
app_period_display_online from dbo.v_app001_application_period_for_dropdown
where pgm_id = 1 order by available_dt");
$app_period_options_psyd = "";
while($result = mssql_fetch_array($app_period_lookup_psyd)) {
$app_period_options_psyd .= "'" . $result['app_period_display_online'] ."', ";
}
Переменная, созданная здесь: $ app_period_options_psyd , и она выдаст что-то вроде:
«сентябрь 2011», «январь 2012»,
Это переключатели:
<input type="radio" name="pgm_id" id="macpe" value="4"
onclick="change([<?=$app_period_options_psyd?>]) " />Radio Button 1<br />
<input type="radio" name="pgm_id" id="macpd" value="5"
onclick="change(['January', 'February', 'March']) " />Radio Button 2
Нажатие на эти две кнопки вызовет следующие выпадающие списки:
<select id="app_period_id">
<option value="September 2011">September 2011</option>
<option value="January 2012">January 2012</option>
</select>
<select id="app_period_id">
<option value="January">January</option>
<option value="February">February</option>
<option value="March">March</option>
</select>
Они работают через этот скрипт в шапке:
<script type="text/javascript">
function change(arr) {
var el = document.getElementById('app_period_id');
el.options.length = 0;
for(var i = 0; i< arr.length; i++ ) {
el.options[el.options.length] = new Option( arr[i], arr[i]);
}
}
</script>
ВОПРОС: Как мне изменить Javascript для создания различных значений для value = "" и дескриптора, причем ОБА значения, полученные из запроса / запросов? Это идеальный выход:
<select id="app_period_id">
<option value="app_period_1">January 2012</option>
<option value="app_period_6">February 2012</option>
<option value="app period_18">March 2013</option>
</select>
Где в запросе SQL будет сгенерирован app_period_x.