When creating filter by some field in views index, I get:

Warning: Invalid argument supplied for foreach() in form_type_checkboxes_value() (line 2251 of /var/www/dev.kidmart.ru/www/includes/form.inc). =>

The problem is that form_type_checkboxes_value gets empty string '' instead of empty array.
To get rid of the error, I changed the line 100 of handler_filter_options.inc from

'#default_value' => isset($this->value) ? $this->value : array(),

to

'#default_value' => isset($this->value) ? (array) $this->value : array(),

not sure if that is a correct fix, but it helps.

Comments

davidwbarratt’s picture

Another solution could be to simply change the function like so:

'#default_value' => is_array($this->value) ? $this->value : array(),
maestro82’s picture

Hi Guys,
In which module (or dir) is file: "handler_filter_options.inc"?
Thank you for answer.

drunken monkey’s picture

Status: Active » Needs review
StatusFileSize
new684 bytes

Thanks for reporting and debugging this! The solution in #1 seems fine, I created a little patch from that. Could someone confirm this solves the issue?

In which module (or dir) is file: "handler_filter_options.inc"?

It's in search_api/contrib/search_api_views/includes.

Status: Needs review » Needs work

The last submitted patch, 1433720--options_filter_array_default-3.patch, failed testing.

drunken monkey’s picture

Status: Needs work » Needs review

Status: Needs review » Needs work

The last submitted patch, 1433720--options_filter_array_default-3.patch, failed testing.

bago’s picture

I just updated search_api and reapplied this... anyone knows why does CI fail testing?

JvE’s picture

Version: 7.x-1.0 » 7.x-1.x-dev
Status: Needs work » Needs review
StatusFileSize
new727 bytes

Rerolled patch against latest dev.

kenorb’s picture

Backtrace:

Warning: Invalid argument supplied for foreach() in form_type_checkboxes_value() (line 2288 of includes/form.inc). =>
... (Array, 12 elements)
11: form_type_checkboxes_value() (Array, 2 elements)
file (String, 22 characters ) includes/form.inc:2288
args (Array, 3 elements)
0 (Array, 25 elements)
#type (String, 10 characters ) checkboxes
#title (String, 5 characters ) Value
#options (Array, 10 elements)
current (String, 23 characters ) Current user's language
default (String, 21 characters ) Default site language
und (String, 16 characters ) Language neutral
en (String, 7 characters ) English
sv (String, 7 characters ) Swedish
nl (String, 5 characters ) Dutch
it (String, 7 characters ) Italian
fr (String, 6 characters ) French
es (String, 7 characters ) Spanish
de (String, 6 characters ) German
#multiple (Boolean) TRUE
#size (Integer) 4
#default_value (String, 0 characters )
#states (Array, 1 element)
#prefix (String, 44 characters ) <div class="views-group-box views-right-70">
#suffix (String, 6 characters ) </div>
#input (Boolean) TRUE
#process (Array, 2 elements)
#theme_wrappers (Array, 1 element)
#pre_render (Array, 2 elements)
#after_build (Array, 1 element)
#defaults_loaded (Boolean) TRUE
#tree (Boolean) TRUE
#parents (Array, 2 elements)
#array_parents (Array, 2 elements)
#weight (Float) 0.007
#processed (Boolean) FALSE
#required (Boolean) FALSE
#attributes (Array, 0 elements)
#title_display (String, 6 characters ) before
#id (String, 18 characters ) edit-options-value
#name (String, 14 characters ) options[value]
1 (Boolean) FALSE
2 (Array, 31 elements)
form_key (String, 11 characters ) config-item
form_id (String, 25 characters ) views_ui_config_item_form | (Callback) views_ui_config_item_form();
view (Object) view
ajax (Boolean) TRUE
display_id (String, 4 characters ) page
no_redirect (Boolean) TRUE
type (String, 6 characters ) filter
id (String, 19 characters ) search_api_language
input (Array, 0 elements)
url (String, 86 characters ) /admin/structure/views/ajax/config-item/search_...
rerender (Boolean) FALSE
no_cache (Boolean) TRUE
build_info (Array, 3 elements)
rebuild (Boolean) FALSE
rebuild_info (Array, 0 elements)
redirect (NULL)
temporary (Array, 0 elements)
submitted (Boolean) FALSE
executed (Boolean) FALSE
programmed (Boolean) FALSE
cache (Boolean) FALSE
method (String, 4 characters ) post
groups (Array, 1 element)
buttons (Array, 0 elements)
section (String, 7 characters ) filters
handler (Object) SearchApiViewsHandlerFilterLanguage
title (String, 58 characters ) Configure filter criterion: Indexed Content: It...
#section (String, 31 characters ) page-filter-search_api_language
values (Array, 1 element)
complete form (Array, 31 elements)
process_input (Boolean) FALSE
10: _form_builder_handle_input_element() (Array, 2 elements)
file (String, 22 characters ) includes/form.inc:2025
args (Array, 3 elements)
 9: form_builder() (Array, 2 elements)
 8: form_builder() (Array, 2 elements)
 7: form_builder() (Array, 2 elements)
 6: drupal_process_form() (Array, 2 elements)
 5: drupal_build_form() (Array, 2 elements)
 4: views_ajax_form_wrapper() (Array, 2 elements)
 3: views_ui_ajax_form() (Array, 2 elements)
 2: call_user_func_array() (Array, 1 element)
args (Array, 2 elements)
0 (String, 18 characters ) views_ui_ajax_form | (Callback) views_ui_ajax_form();
1 (Array, 5 elements)
0 (Boolean) TRUE
1 (String, 8 characters ) add-item
2 (Object) view
3 (String, 4 characters ) page
4 (String, 6 characters ) filter
 1: menu_execute_active_handler() (Array, 2 elements)
 0: main() (Array, 2 elements)

Views similar issues:
#762238: warning: Invalid argument supplied for foreach()
#1018564: views arguments error

kenorb’s picture

Status: Needs review » Reviewed & tested by the community

Tested patch, it fixes the problem.

drunken monkey’s picture

Status: Reviewed & tested by the community » Fixed

Great to hear. Committed!
Thanks for testing, and thanks again to davidwbarratt for providing the solution!

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.