Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的日历下拉列表:保留选定值并重新使用该函数_Php_Mysql_List_Function - Fatal编程技术网

PHP中的日历下拉列表:保留选定值并重新使用该函数

PHP中的日历下拉列表:保留选定值并重新使用该函数,php,mysql,list,function,Php,Mysql,List,Function,我在网上找到了定义日历下拉列表(月/日/年格式)的以下PHP函数。该功能工作正常,但我希望: a) 保留月、日和年的选定值,以便能够轻松编辑值(值通过foreach循环动态定义),以及 b) 希望在多个变量上重复使用该函数(到目前为止,我使用它来定义出生日期,但我也希望在其他字段上使用相同的函数) 月、日和年的值是动态定义的,这一事实让我有点困惑,当然,我还不熟悉函数定义。任何帮助都将不胜感激 以下是函数: function make_calendar_pulldowns() { //

我在网上找到了定义日历下拉列表(月/日/年格式)的以下PHP函数。该功能工作正常,但我希望:

a) 保留月、日和年的选定值,以便能够轻松编辑值(值通过foreach循环动态定义),以及

b) 希望在多个变量上重复使用该函数(到目前为止,我使用它来定义出生日期,但我也希望在其他字段上使用相同的函数)

月、日和年的值是动态定义的,这一事实让我有点困惑,当然,我还不熟悉函数定义。任何帮助都将不胜感激

以下是函数:

function make_calendar_pulldowns() {

    // Make the months array:
    $months = array (1 => 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

    // Make the months pull-down menu:
    //echo '<p><label for="dob" style="font-family: Verdana, Arial; font-size: 1.0em; font-weight: 600; color: #595959; line-height: 1.9em;">Date of Birth</label></p>';
    echo '<select required="required" name="month" id="month" style="width: 33%; display: inline; float: left; margin-left: 1%; margin-right: 0%">';
    echo '<option selected value="">Month</option>\n';
    foreach ($months as $key => $value) {
        echo "<option value=\"$key\" >$value</option>\n";
    }
    echo '</select>';

    // Make the days pull-down menu:
    echo '<select required="required" name="day" id="day" style="width: 33%; display: inline; float: left; margin-left: 0%; margin-right: 0%" ;>';
    echo '<option selected value="">Day</option>\n';
    for ($day = 1; $day <= 31; $day++) {
        echo "<option value=\"$day\">$day</option>\n";
    }
    echo '</select>';

    // Make the years pull-down menu:
    echo '<select required="required" name="year" id="year" style="width: 33%; display: inline; float: left; margin-left: 0%; margin-right: 0%" ;>';
    echo '<option selected value="">Year</option>\n';
    for ($year = 1910; $year <= 2000; $year++) {
        echo "<option value=\"$year\">$year</option>\n";
    }
    echo '</select>';
最后,我使用以下代码调用表单中的函数:

// Validate the month.
if (is_numeric ($month)) {
    $dob = $month . '-';

} else {
    $action['result'] = 'error'; 
    array_push($text,'Please insert a valid Month for patient birth date');
}
// Validate the day.
if (is_numeric ($day)) {
    $dob .= $day . '-';

} else {
    $action['result'] = 'error'; 
    array_push($text,'Please insert a valid Day for patient birth date');
}
// Validate the year.
if (is_numeric ($year)) {
    $dob = $year . '-' . $month . '-' .  $day; // Set Birthdate in SQL format
<!-- <p><label for="dob">Date of Birth <img src="../img/req.gif" alt="Required"</label></p>
<?php make_calendar_pulldowns(); ?> -->

实际上,它的某些部分有点不对劲:

// Make the months array:
$months = array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
// some months are a bit off, the keys are missing
// Should be something like this:

$months = array ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
$month_num = range(1, 12);
$months = array_combine($month_num, $months);
日期是硬编码的,那么2月31日呢

我想这些年应该没问题

为什么不使用日期选择器(特别是jqueryui)来实现这个目的呢

$(函数(){
$(“#日期选择器”)。日期选择器({
变化月:对,
变化年:是的,
dateFormat:'年-月-日',//iso格式
});
});

日期:


那么我认为您希望有人在这里为您编写此代码是正确的吗?这不是免费的编码服务,我可以建议快速阅读此ehmm…如果我问了一些不合适的问题,我表示歉意,实际上我不希望有人为我编写函数(我已经做过),只是为了告诉我如何修改它以使其可重用。无论如何,谢谢你的建议,我会看看的。谢谢你的帮助。我也相信最好的方法是Javascript/JQuery,问题是我对这方面的知识还不足以解决这个问题,所以我想继续使用PHP,直到我学到更多关于JQuery的知识,但我会看看你建议的链接,并将实现datepicker(如果我能够)…再次感谢你的代码片段,真的很有帮助@迭戈:是的,我绝对建议你走这条路线,这样你就不需要手工编写必要的日期、闰年等。事实上,你真正需要做的就是使用这种方式,文本框值已经写下了正确的日期,瞧,现在一切都好了,不管怎样,我很高兴这提供了一些见解。好的,我已经完成了你的建议(实际上,只是一点点),它像冠军一样工作……非常感谢@迭戈:是的,事实上,使用这个有点无压力,我很高兴这有帮助