使用php变量</select>选择动态创建的<select option =“”>

时间:2013-03-27 16:36:53

标签: php javascript

昨天我学会了如何使用javascript动态创建一个选择选项:

<select name="dateformat" onchange="change_date();" id="dateformat">
</select>

var dateformat = document.getElementById('dateformat');
dateformat.options[dateformat.options.length] = new Option(month + "/" + day + "/" + fullyear, "M/d/yyyy");
dateformat.options[dateformat.options.length] = new Option(monthwz + "/" + daywz + "/" + fullyear,"MM/dd/yyyy");
dateformat.options[dateformat.options.length] = new Option(day + "/" + month + "/" + fullyear,"d/M/yyyy");

我不知道这是否是唯一的方法,并且javascript代码不能包含在代码块中,但我不知道如何选择合适的选项。从php我查询用户的设置,例如MM / dd / yyyy所以我需要在页面加载时选择第二个选项。

我可以通过静态选择选项来做到这一点,例如

<option value="Business" <?php if($category == 'Business'): ?> selected="selected"<?php endif; ?> >Business</option>

但在这种情况下,动态创建选择选项。

1 个答案:

答案 0 :(得分:0)

您可以将代码重写为更优雅:

var dateformat = document.getElementById("dateformat"),
    options = [{
        text: month + "/" + day + "/" + fullyear,
        value: "M/d/yyyy"
    }, {
        text: monthwz + "/" + daywz + "/" + fullyear,
        value: "MM/dd/yyyy"
    }, {
        text: day + "/" + month + "/" + fullyear,
        value: "d/M/yyyy"
    }];

for (var i = 0, len = options.length; i < len; i++) {
    var option = options[i],
        element = new Option(option.text, option.value);

    dateformat.options[dateformat.options.length] = element;
}

// one way to set the selected value:
dateformat.value = <?php print json_encode($value); ?>;

DEMO: http://jsfiddle.net/vPerj/