フォームのドロップダウン リストを JavaScript で生成しました。ただし、フォームを投稿すると、ドロップダウン リストの値が null になります。リストから別のオプションを選択しても、デフォルトにすることはできません。これが私のPHPです:
$BirthDays = ($_POST['Days']);
$BirthMonths = ($_POST['Months']);
$BirthYears = ($_POST['Years']);
そして、これはJavaScriptです:
function runcalender() {
var calendar = [
["January", 31],
["February", 28],
["March", 31],
["April", 30],
["May", 31],
["June", 30],
["July", 31],
["August", 31],
["September", 30],
["October", 31],
["November", 30],
["December", 31]
],
cont = document.getElementById('calender');
//set variables for calender
var sel_year = document.createElement('select'),
sel_month = document.createElement('select'),
sel_day = document.createElement('select');
sel_year.setAttribute("id", "Years");
sel_month.setAttribute("id", "Months");
sel_day.setAttribute("id", "Days");
sel_year.setAttribute("name", "Years");
sel_month.setAttribute("name", "Months");
sel_day.setAttribute("name", "Days");
function createOption(txt, val) {
var option = document.createElement('option');
option.value = val;
option.appendChild(document.createTextNode(txt));
return option;
}
function clearChildren(ele) {
while (ele.hasChildNodes()) {
ele.removeChild(ele.lastChild);
}
}
function recalculateDays() {
var month_index = sel_month.value,
df = document.createDocumentFragment();
for (var i = 0, l = calendar[month_index][1]; i < l; i++) {
df.appendChild(createOption(i + 1, i));
}
clearChildren(sel_day);
sel_day.appendChild(df);
}
function generateMonths() {
var df = document.createDocumentFragment();
calendar.forEach(function(info, i) {
df.appendChild(createOption(info[0], i));
});
clearChildren(sel_month);
sel_month.appendChild(df);
}
function generateYears(){
var dateForYear = new Date();
var x = dateForYear.getFullYear();
var y = x - 100;
var df = document.createDocumentFragment();
for (i = x; i >= y; i--){
df.appendChild(createOption(i, i));
}
clearChildren(sel_year);
sel_year.appendChild(df);
}
sel_month.onchange = recalculateDays;
generateMonths();
recalculateDays();
generateYears();
cont.appendChild(sel_day);
cont.appendChild(sel_month);
cont.appendChild(sel_year);
}
PHPが結果を認識するために手動で結果を選択するには、javascriptを取得する必要がありますか?