web-dev-qa-db-ja.com

ビューの公開フィルターエラー「不正な選択が検出されました。サイト管理者に連絡してください。」

ビューの1つで露出したフィルターに非常に奇妙な問題が発生しています。私が話しているページはここにあります: http://epsindustry.org/eps-packaging-map2

メニューの最後の2つのオプション(EPS包装リサイクル業者またはルーズフィルリサイクルドロップオフ)の1つを選択すると、An illegal choice has been detected. Please contact the site administrator.これは、これらの2つのオプションでのみ発生するため、私には本当に奇妙です。それらが他の分類法の用語と異なって設定されているとは思いません。それらについて特別なことは何もありません。それは、管理者がマップの場所を作成するときに選択する用語です。

これがなぜ起こっているのか、それをどのように修正するのかについてのアイデアはありますか?

3
Dustin

私は同じ問題を抱えていました。私の場合、国を「米国」(デフォルト値)から「英国」に変更し、州/省として「ノースヨークシャー」を選択して保存すると、「違法な選択」メッセージが表示されました。

私はそれを修正するために次のことをしました:

  • [場所]フィールドの[構成]ページに移動します(ノードタイプを編集して[フィールドの管理]に移動します)。
  • [イベント設定]セクション([場所情報]セクションではありません)に、[デフォルト値]というドロップダウングループがあります。 「国」をイギリスに設定しました。
  • フィールド設定を保存します。
  • できました。

使用:

  • Drupal 6.28
  • MySQL 5.1.72
  • PHP 5.3.3.7 + squeeze17
  • 場所:6.x-3.3-rc3 + 6-dev(2013-Oct-25)
  • GMapの場所:6.x-2.0-beta5 + 1-dev(2013-Sep-30)

それが役に立てば幸い。

1
Eke

一般に、この問題は、公開されたフォームが未定義の値を取得しているときに発生します。選択したリストにアイテムを制限すると、他の未定義の値は取得されません。

したがって、対応するフィルター基準フィールドに移動し、表示されたチェックボックスをオンにすると、「選択したアイテムにリストを制限する」チェックボックスがあります。それを確認して、ビューを保存します。

それで全部です。

0
bisw

私はクエリ変更を使用したのと同じ問題にも直面しました

選択フィールドとしてノード参照を使用しました。動的に偶然に選択リストの値を設定できます

ステップ1:すべて選択オプションのチェックを外し、ドロップダウンから任意の項目を選択します。

ステップ2: arg()値を使用して、現在のページに基づいて値を変更します。

以前は、1つのオプションを動的に選択するすべてのノードのノードIDに基づいて選択を変更していました。以下は、変更に使用したサンプルコードです。

function modulename_views_query_alter(&$view, &$query) {
    if($view->name == "view_name"){
          if($view->current_display == "block_name"){
        $query -> where[4]['conditions'][1]= array('field' => 'field_data_field_field_name.field_selectlist_id', 'value' => $passthevaluetobesent, 'operator' => '=');
            }
    }
}

enter image description here

クエリの条件クラスを変更し、必要に応じて動的に変更します

お役に立てば幸いです。

0
DEVARAJ JOHNSON

これは、未公開に設定されているエンティティへの参照が原因で発生する場合もあります。エンティティを参照し、オプションを匿名ユーザーに表示したい場合は、エンティティを公開する必要があります。

0
davewilly