0

動的に形成される複数の div があります。各 div 内には、チェックボックスのリストと 1 つのドロップダウンがあります。チェックボックスのリストには、ホテル名とカテゴリ、およびホテルの評価を含む単一のドロップダウンが含まれています。ユーザーは、チェックボックスを選択するか、ドロップダウンからオプションを選択できます。デフォルトではチェックボックスです。ユーザーがチェックボックスを選択しない場合、特定の都市についてドロップダウンの値を考慮する必要があります。

これはコントローラーで試したコードですが、目的の結果が得られません。誰かがこのplsで私を助けることができますか?

       if (isset($_POST['city'])) {
                $city = $_POST['city'];
                if (is_array($city)) {
                    foreach ($this->input->post('city') as $city) {
                        $cityid[] = $city;
                        // $category.= $this->input->post('category_' . $city) . ",";
                        // $categorycity.= $city . ",";
                        //   $prefsightseeing.= $this->input->post('prefsight_' . $city) . ",";
                        //   $prefsightseeingcity.= $city . ",";
                        //$hotel = $_POST['hotel'];

                        if (isset($_POST['hotel'])) {
                            $hotel = $_POST['hotel'];

                         //   if (is_array($hotel) && in_array($city, $hotel)) {
                                foreach ($this->input->post('hotel') as $city_id) {
                                    $arr = explode('_', $city_id);
                                    if (in_array($arr[1], $cityid)) {
                                        $hotelcityid.= $arr[1] . ',';
                                        $hotelid.= $arr[2] . ',';
                                    }

                           //     }
                            }
                        } 

                       else{     if (isset($_POST['category'])) {
                                $category = $_POST['category'];
                                foreach ($this->input->post('category') as $category) {
                                    $arr = explode('_', $category);
                                  // echo $arr[1];
                                   // print_r($cityid);
                                    if (in_array($arr[1], $cityid)) {
                                        $hotelcategory.= $arr[0] . ',';
                                        $categorycity.= $city . ',';
                                      }
                                }
                            }
                       }
                        //  $hotelid.= $arr[2] . ',';
                    }
                    $categorycity = rtrim($categorycity, ',');
                    $category = rtrim($hotelcategory, ',');
                  $category=  implode(',', array_keys(array_flip(explode(',', $category))));
$categorycity=  implode(',', array_keys(array_flip(explode(',', $categorycity))));

                    // $prefsightseeing = rtrim($prefsightseeing, ',');
                    // $prefsightseeingcity = rtrim($prefsightseeingcity, ',');
                }
            }
            if ($category != "") {

                $arrData['HotelInfoByCategory'] = $this->previewpackage_model->get_hotel_info_by_category($category, $categorycity);
            }

ありがとう、

4

3 に答える 3

2

チェックボックスの入力タグで名前を「city」だけでなく「city[]」にしてから、コントローラーで $this->input->post['city[]'] として取得すると、値の配列が返されますチェック済み。それ以外の場合は、「都市」のみを使用すると、最後にチェックされた値のみがここに表示されます。「city[]」を使ってみてください。

于 2012-10-12T09:27:48.797 に答える
0

あなたの質問に基づいて'投稿phpから配列を表示します'私はただ言います

echo '<pre>';
print_r($_POST);
echo '</pre>';

投稿されたデータを調べるのに役立ちます

于 2012-10-12T05:28:38.103 に答える
0

空の変数の条件が欠落していると思います。このようなことを試してください

if (isset($_POST['city']) && !empty($_POST['city']))

他の人にも同じことをしてください:)

于 2012-10-12T06:14:21.453 に答える