1

これは初心者の質問です...私はJoomla 3.3と最新のクロノフォームv5のフォームを持っています...フォームが読み込まれると、データベースは私の最初の選択入力にDBからの「インタビュー日」を入力します....一度あなたが日付を選択すると、2 番目の選択入力に利用可能なタイム スロットが入力されます。ここでの問題は、DB が配列に出力される方法です。

データ -> 時刻 -> 午前 7:00、午前 7:15、午前 9:30

現在、2 番目の選択が読み込まれると、午前 7:00、午前 7:15、午前 9:30 のように表示されます。すべて 1 つの値ではなく、個々の値を作成できるようにしたいのですが、これが私のコードです。現在、2番目の選択入力の「時間」オプションに使用しています...

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

これは可能ですか?

4

2 に答える 2

0

私が間違っていなければ$d['time']、「7:00am、7:15am、9:30am」のような値を保持しています。この場合は、explode(',', $d['time'])文字列の代わりに時間の配列を取得する which を使用できます。

$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);
于 2014-12-23T16:21:17.313 に答える