0

クリックするドロップダウンリストがある予約システムがあります。このドロップダウン リストをクリックすると、次のオプションが表示されます。

1人2人3人4人……

最初のオプションは「1 人」と言いたいのですが、残りのすべてのオプションは次のように「人」と言う必要があります。

1人 2人 3人 4人……

PHP ファイルには、セレクターの出力を制御する次のセクションがあります。

public function getFilterPlaces () {

    $places = array();
    $bookingSystem = $this->getParam ('bookingSystem','tables');

    if ( $bookingSystem == 'tables' ) {

        $query = $this->_db->getQuery ( true );
        $query->select ('a.places AS max, a.minim AS min');
        $query->from ('#__tbb_table AS a');

        $this->_db->setQuery ( $query );
        $tables = $this->_db->loadObjectList();

        if ( $tables ) {
            foreach ( $tables as $table ) {
                for ( $i = $table->min; $i<= $table->max; $i++ ) {
                    if ( !in_array($i, $places ) ) {
                        $places[$i] = $i . ' people';
                    }
                }
            }
        }

    } elseif ( $bookingSystem == 'places' ) {
        $max = $this->getParam ('restaurantPlaces', 0);
        if ( $max ) {
            for ( $i = 1; $i<= $max; $i++ ) {
                $places[$i] = $i . ' ' .     JText::_('COM_TABLEBOOKING_FILTER_PLACES');
            }
        }
    }

    return $places;
} 

最初のエントリに「1人」を入力し、次のエントリに2人、3人などを入力するには、配列をどのようにコーディングしますか?

ありがとう、

4

2 に答える 2

1

if else次のコードが示すように条件を 適用します。

$places = array();
$bookingSystem = $this->getParam ('bookingSystem','tables');

if ( $bookingSystem == 'tables' ) {

    $query = $this->_db->getQuery ( true );
    $query->select ('a.places AS max, a.minim AS min');
    $query->from ('#__tbb_table AS a');

    $this->_db->setQuery ( $query );
    $tables = $this->_db->loadObjectList();

    if ( $tables ) {
        foreach ( $tables as $table ) {
            for ( $i = $table->min; $i<= $table->max; $i++ ) {
                if ( !in_array($i, $places ) ) {
                    if ($i==1) {
                                                $places[$i] = $i . ' person'; // APPLY `IF ELSE ` CONDITION HERE.
                                            }
                                            else {
                                                $places[$i] = $i . ' people';
                                            }
                }
            }
        }
    }

} elseif ( $bookingSystem == 'places' ) {
    $max = $this->getParam ('restaurantPlaces', 0);
    if ( $max ) {
        for ( $i = 1; $i<= $max; $i++ ) {
            $places[$i] = $i . ' ' .     JText::_('COM_TABLEBOOKING_FILTER_PLACES');
        }
    }
}

return $places;

}

于 2013-10-01T16:50:01.973 に答える
0

解決!2 番目の部分にも if-else ロジックを追加する必要がありました!!! ありがとうございました!!!!!あなたはロックします!

$places = array();
$bookingSystem = $this->getParam ('bookingSystem','tables');

if ( $bookingSystem == 'tables' ) {

$query = $this->_db->getQuery ( true );
$query->select ('a.places AS max, a.minim AS min');
$query->from ('#__tbb_table AS a');

$this->_db->setQuery ( $query );
$tables = $this->_db->loadObjectList();

if ( $tables ) {
    foreach ( $tables as $table ) {
        for ( $i = $table->min; $i<= $table->max; $i++ ) {
            if ( !in_array($i, $places ) ) {
                if ($i==1) {
                                            $places[$i] = $i . ' person'; // APPLY `IF ELSE ` CONDITION HERE.
                                        }
                                        else {
                                            $places[$i] = $i . ' people';
                                        }
            }
        }
    }
 }

} elseif ( $bookingSystem == 'places' ) {
$max = $this->getParam ('restaurantPlaces', 0);
if ( $max ) {
    for ( $i = 1; $i<= $max; $i++ ) {
       if ($i==1) {
                                            $places[$i] = $i . ' person'; // APPLY `IF ELSE ` CONDITION HERE.
                                        }
                                        else {
                                            $places[$i] = $i . ' people';
                                        }
            }

    }
}


 return $places;

}
于 2013-10-01T18:12:34.027 に答える