-4

我将此功能用作日历下拉菜单。我不确定如何编写php<inputtype ="text" ...

这是生成下拉列表的 php 函数。我如何写<inputtype="text"声明?

抱歉,我是 PHP 新手,我不知道该怎么做?

<?PHP 

    FUNCTION DateSelector($inName, $useDate=0) 
    { 
        /* create array so we can name months */ 
        $monthName = ARRAY(1=> "January", "February", "March", 
            "April", "May", "June", "July", "August", 
            "September", "October", "November", "December"); 

        /* if date invalid or not supplied, use current time */ 
        IF($useDate == 0) 
        { 
            $useDate = TIME(); 
        } 

        /* make month selector */ 
        ECHO "<SELECT NAME=" . $inName . "Month>\n"; 
        FOR($currentMonth = 1; $currentMonth <= 12; $currentMonth++) 
        { 
            ECHO "<OPTION VALUE=\""; 
            ECHO INTVAL($currentMonth); 
            ECHO "\""; 
            IF(INTVAL(DATE( "m", $useDate))==$currentMonth) 
            { 
                ECHO " SELECTED"; 
            } 
            ECHO ">" . $monthName[$currentMonth] . "\n"; 
        } 
        ECHO "</SELECT>"; 

        /* make day selector */ 
        ECHO "<SELECT NAME=" . $inName . "Day>\n"; 
        FOR($currentDay=1; $currentDay <= 31; $currentDay++) 
        { 
            ECHO "<OPTION VALUE=\"$currentDay\""; 
            IF(INTVAL(DATE( "d", $useDate))==$currentDay) 
            { 
                ECHO " SELECTED"; 
            } 
            ECHO ">$currentDay\n"; 
        } 
        ECHO "</SELECT>"; 

        /* make year selector */ 
        ECHO "<SELECT NAME=" . $inName . "Year>\n"; 
        $startYear = DATE( "Y", $useDate); 
        FOR($currentYear = $startYear - 5; $currentYear <= $startYear+5;$currentYear++) 
        { 
            ECHO "<OPTION VALUE=\"$currentYear\""; 
            IF(DATE( "Y", $useDate)==$currentYear) 
            { 
                ECHO " SELECTED"; 
            } 
            ECHO ">$currentYear\n"; 
        } 
        ECHO "</SELECT>"; 

    } 
?> 

<HTML> 
<BODY> 
<FORM> 
Choose a Date: <?PHP DateSelector( "Sample"); ?> 
</FORM> 
</BODY> 
</HTML>

我的代码结束。

先感谢您 。对不起,我是 PHP 新手

4

2 回答 2

0

假设发布所选日期(以 mysql 格式)将是:

$mysql_date=$_POST['SampleYear'].'-'.$_POST['SampleMonth'].'-'.$_POST['SampleDay'];

'Sample' 是示例中 $inName 的值

于 2012-08-26T04:28:49.533 回答
0

无需为日期添加文本框。您可以通过连接发布的值来设置它们

$selected_date = $_POST['SampleYear'] . $_POST['SampleMonth'] . $_POST['SampleDay']; 

--

如果你觉得有必要<input type="text" />加上日期,你可以使用 jQuery

// in the head of your document
  //this checks for when elements of date are changed
$(function() {
$('#SampleMonth').change(function(){ setSelectedDate();});
$('#SampleDay').change(function(){ setSelectedDate();});
$('#SampleYear').change(function(){ setSelectedDate();});
}
  // this changes the text box to the values of the selects
Function setSelectedDate(){
var sel_month = $('#SampleMonth').val();
var sel_day = $('#SampleDay').val();
var sel_year = $('#SampleYear').val();
var new_sel_date = sel_year + "-" + sel_month + "-" + sel_day;
  // note that this puts the date as YYYY-MM-DD, which is the proper way to insert into mysql. It can be set as MM/DD/YYYY, but then you would have to change it again after posting.
$('#purchasedate').val(new_sel_date);
}

// inside the form tags
<input type="text" id="purchasedate" name="invoice_date" value="" readonly="true" />

然后您可以通过发布的值输入它

$selected_date = $_POST['purchasedate'];
于 2012-08-26T04:29:22.580 回答