这是一个新手问题......我在Joomla 3.3中有一个表单,chronoforms v5最新...当表单加载时,数据库填充我的第一个选择输入"采访日期"从我的数据库....工作得很好,一旦你选择了日期,第二个选择输入填充可用的时间段....这里的问题是在数组中输出数据库的方式是
Data-用> 时间大于7:00 am,7:15 am,9:30AM
现在,当第二个选择加载它时,它显示为7:00 am,7:15am,9:30 am .... 我希望能够使它们成为个体价值而不是一个价值...... 这是我目前用于"时间"第二个选择输入的选项......
<?php
$options = array();
if ( !$form->data['Data'] || count($form->data['Data']) < 1 ) {
// no result was found
$options[] = 'Please select a category';
} else {
foreach ( $form->data['Data'] as $d ) {
$options[$d['interviewdate']] = ($d['time']);
}
}
echo json_encode ($options);
?>
这可能吗?
答案 0 :(得分:1)
创建选项列表所需的结构如下:
[0] => array ('text' => 'aaa', 'value' => 'xxx'),
[1] => array ( . . .
您的数据似乎是嵌套数组,如$ form-&gt; data ['Data'] ['time']?
在这种情况下,文本和值可能是相同的,因此代码将是这样的:
<?php
$options = array();
if ( !$form->data['Data']['time'] ) {
// no result was found
$options[] = array('text' => 'Please select a category', 'value' => '');
} else {
$data = explode(',', $form->data['Data']['time']);
foreach ( $data as $d ) {
$options[] = array('text' => $d['time'], 'value' => $d['time']);
}
}
echo json_encode($options);
?>
答案 1 :(得分:0)
如果我没有记错,你的$d['time']
会保留像早上7点到早上7点,早上9点,上午9点30分的价值。如果是这种情况,那么您可以使用explode(',', $d['time'])
,它将为您提供数组而不是字符串。
$options = array();
$form = new stdClass();
$form->data['Data'] = array(
array(
'interviewdate' => 'date', 'time' => '7:02am,7:25am,9:40am'
),
array(
'interviewdate' => 'date2', 'time' => '7:05am,7:35am,19:40am'
)
);
if ( !$form->data['Data'] || count($form->data['Data']) < 1 ) {
// no result was found
$options[] = 'Please select a category';
} else {
foreach ( $form->data['Data'] as $d ) {
foreach(explode(',', $d['time']) as $time){
$options[] = array($d['interviewdate'] => $time);
}
}
}
echo json_encode ($options);