ビューの1つで露出したフィルターに非常に奇妙な問題が発生しています。私が話しているページはここにあります: http://epsindustry.org/eps-packaging-map2
メニューの最後の2つのオプション(EPS包装リサイクル業者またはルーズフィルリサイクルドロップオフ)の1つを選択すると、An illegal choice has been detected. Please contact the site administrator.
これは、これらの2つのオプションでのみ発生するため、私には本当に奇妙です。それらが他の分類法の用語と異なって設定されているとは思いません。それらについて特別なことは何もありません。それは、管理者がマップの場所を作成するときに選択する用語です。
これがなぜ起こっているのか、それをどのように修正するのかについてのアイデアはありますか?
私は同じ問題を抱えていました。私の場合、国を「米国」(デフォルト値)から「英国」に変更し、州/省として「ノースヨークシャー」を選択して保存すると、「違法な選択」メッセージが表示されました。
私はそれを修正するために次のことをしました:
使用:
それが役に立てば幸い。
一般に、この問題は、公開されたフォームが未定義の値を取得しているときに発生します。選択したリストにアイテムを制限すると、他の未定義の値は取得されません。
したがって、対応するフィルター基準フィールドに移動し、表示されたチェックボックスをオンにすると、「選択したアイテムにリストを制限する」チェックボックスがあります。それを確認して、ビューを保存します。
それで全部です。
私はクエリ変更を使用したのと同じ問題にも直面しました
選択フィールドとしてノード参照を使用しました。動的に偶然に選択リストの値を設定できます
ステップ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' => '=');
}
}
}
クエリの条件クラスを変更し、必要に応じて動的に変更します
お役に立てば幸いです。
これは、未公開に設定されているエンティティへの参照が原因で発生する場合もあります。エンティティを参照し、オプションを匿名ユーザーに表示したい場合は、エンティティを公開する必要があります。