我目前正在尝试将 3 个选择值放入一个字段中。我试图通过内爆价值观来做到这一点;但是我收到一个错误说:
"警告: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="" />
您的 $_POST['episode_airdate'] 未在此处作为数组发布....
看来你愿意在这里生成一个日期,因此为了您的方便,请使用下面给定的 url 作为日期选择器的 PHP 库......
PHP 日期选择器
更新
根据你对这个答案的评论...如果你想填充你的隐藏字段,那么你必须使用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;
}
现在,每个选择框的更改属性将调用此函数作为
<select name='airdate_day' id='airdate_day' onChange='javascript:datepopulate();'>
以类似的方式,其他两个选择框将调用javascript函数
现在,当表单发布时,您的$_POST['episode_airdate']
将包含一个完整的日期,因此您不必在其中使用implode()
函数,可以直接应用datetime()
函数或$_POST['episode_airdate']
变量
内爆函数的第二个参数必须是数组,你给出一个 POST 变量。