summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/common.inc11
1 files changed, 10 insertions, 1 deletions
diff --git a/includes/common.inc b/includes/common.inc
index f6171cfd9..3e6d31f88 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -3878,7 +3878,16 @@ function drupal_html_id($id) {
// requested id. $_POST['ajax_html_ids'] contains the ids as they were
// returned by this function, potentially with the appended counter, so
// we parse that to reconstruct the $seen_ids array.
- foreach ($_POST['ajax_html_ids'] as $seen_id) {
+ if (is_array($_POST['ajax_html_ids'])) {
+ $ajax_html_ids = $_POST['ajax_html_ids'];
+ }
+ else {
+ // jquery.form.js may send the server a comma-separated string instead
+ // of an array (see http://drupal.org/node/1575060), so we need to
+ // convert it to an array in that case.
+ $ajax_html_ids = explode(',', $_POST['ajax_html_ids']);
+ }
+ foreach ($ajax_html_ids as $seen_id) {
// We rely on '--' being used solely for separating a base id from the
// counter, which this function ensures when returning an id.
$parts = explode('--', $seen_id, 2);