2014-12-23 49 views
1

這是一個新手問題...我有一個表單在Joomla 3.3和chronoforms v5最新...當表單加載數據庫填充我的第一個選擇輸入「採訪日期」從我的數據庫....工程很好,一旦你選擇日期,第二個選擇輸入填充可用時隙....這裏的問題是數據庫在陣列中輸出的方式是

數據 - > 時間 - >上午7:00 7: 15 am,9:30am

現在,當第二個選擇加載它顯示像這樣7:00 am7:15am,9:30am .... 我希望能夠使他們個人價值觀不是全部值... 這是我目前用於「時間」選項的代碼f或第二選擇輸入...

<?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

如果我沒有弄錯你的$d['time']的值是'7:00 am7:15am,9:30am'。如果是這種情況,那麼你可以使用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); 
+0

正確我試過了,但得到了同樣的結果 – NateB

+0

你能提供的結構,你正在尋找得到?通過使用爆炸,你會得到'{「somedate」:[「上午7點」,「上午7點15分」,「上午9點30分」,「另一個」):[「上午7點02分」,「上午7點25分」, 「9:40 am」]}'在你的例子中,你得到了這樣的'{「somedate」:「7:00 am 7:15am,9:30am」,「anotherdate」:「7:02 am7:25am ,9:40am「}'我需要了解你想要實現什麼格式 – Tezd

+0

Array應該看起來像這樣: time-> [0] - > 9:00 am [1] - > 9:15 am [ 2] - > 10:00 am 取而代之的是這個 時間 - >上午9點,上午9點15分10點,上午 – NateB

1

創建一個選項列表所需要的結構是這樣的:

[0] => array ('text' => 'aaa', 'value' => 'xxx'), 
[1] => array (. . . 

和自己的數據似乎是處於嵌套數組像$形式 - >數據[「數據」] ['時間'] ?

在這種情況下,文字和值可能是相同的,所以代碼將是這樣的:

<?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); 
?>