首页 文章

将3个选择值内嵌到一个字段错误中

提问于
浏览
0

我目前正在尝试将3个选择值放入一个字段中 . 我试图通过破坏 Value 来做到这一点;但是我得到一个错误说:

“警告:implode()[function.implode]:传递的参数无效”

更新后的版本

<script>
function datepopulate(){
var day = document.getElementById('airdate_day').value;
var month = document.getElementById('airdate_month').value;
var year = document.getElementById('airdate_year').value;

var completedate = day+'-'+month+'-'+year;
document.getelementById('episode_airdate').value = completedate;
return true;
    }
</script>
        <?php
for($i=1910; $i<=2012; $i++)
    $years[]=$i;

    echo '<select id="airdate_year" onChange="javascript:datepopulate();" style="width:50px; float:left; margin-right:10px;">';
                        echo '<option value="">' . __("2012" ) . '</option>';
        foreach($years as $year){
                            $selected = '';
                            echo '<option value="' . $year . '" ' . $selected . '>' . $year . '</option>';
                        }
                    echo '</select>';


                    for($i=1; $i<=12; $i++)
                        $months[]=$i;

                    echo '<select id="airdate_month" onChange="javascript:datepopulate();" style="width:50px; float:left; margin-right:10px;">';
                        echo '<option value="">' . __("0" ) . '</option>';
                        foreach($months as $month){
                            $selected = '';
                            echo '<option value="' . $month . '" ' . $selected . '>' . $month . '</option>';
                        }
                    echo '</select>';


                    for($i=1; $i<=31; $i++)
                        $days[]=$i;

                    echo '<select name="airdate_day" id="airdate_day" onChange="javascript:datepopulate();"  style="width:50px; float:left; margin-right:10px;">';
                        echo '<option value="">' . __("10" ) . '</option>';
                        foreach($days as $day){
                            $selected = '';
                            echo '<option value="' . $day . '" ' . $selected . '>' . $day . '</option>';
                        }
                    echo '</select>';
                    ?> 
            <input type="hidden" name="episode_airdate[]" id="episode_airdate[]"  class="airdate regular-text" value="" />

2 回答

  • 0

    您的$ _POST ['episode_airdate']未在此处发布为数组....

    似乎你愿意在这里生成一个日期,因此为了方便你使用下面给出的url来获取日期选择器的PHP库....

    PHP Date Picker

    更新

    根据你对这个答案的评论...如果你想填充隐藏的字段,那么你必须使用javascript创建的函数,只要选择框的值发生变化,就会调用这些函数,函数将从所有三个选择框中获取值并将其以所需格式内嵌为DD-MM-YYYY ..并使用此新创建的值填充隐藏字段

    下面将是你的功能它不是经过测试的..但你必须这样做:

    首先使选择框的所有id属性不同,例如 id='airdate_day' 为日选框, id='airdate_month' 为月选择框, id='airdate_year' 为年选择框

    并将隐藏字段ID设为 id='episode_airdate'name='episode_airdate'

    Javascript功能:

    function datepopulate(){
        var day = document.getElementById('airdate_day').value;
        var month = document.getElementById('airdate_month').value;
        var year = document.getElementById('airdate_year').value;
    
       var completedate = day+'-'+month+'-'+year;
       document.getelementById('episode_airdate').value = completedate;
       return true;
    }
    

    现在每个选择框的onChange属性都将此函数称为

    <select name='airdate_day' id='airdate_day' onChange='javascript:datepopulate();'>

    并以类似的方式,其他两个选择框将调用javascript函数

    现在当表单发布时, $_POST['episode_airdate'] 将包含一个完整的日期,因此您不必在其中使用 implode() 函数,并且可以直接将 datetime() 函数应用于 $_POST['episode_airdate'] 变量

  • 1

    implode函数的第二个参数必须是一个Array,你给一个POST变量 .

相关问题