передача массива jquery в php - неожиданный формат и число () и проблема с передачей переменных

0

Я передаю массив jquery под названием "selected", полный идентификаторов вместе с открытием мода ajax.

$('#dtDelete').on('click', function () {
    $('#modal-ajax').load('/modals/m__delete.php?selected='+selected);
    $('#modal-ajax').modal('show');                         
});

На счет модерации php-страниц count($_GET['selected']); всегда возвращает 1 независимо от того, что. Я пытаюсь получить фактическое количество чисел в массиве. Оказывается, это потому, что массив представляет собой строку, как указано ниже.

var_dump($_GET['selected']); возвращает что-то вдоль строк string(69) "187419,187420,187413,187414,187415,187416,187417,187418,187421,187422" чему я не привык (вроде нового для jquery). Мне нужно обработать в php, используя foreach в этом массиве. Могу ли я "преобразовать" это в "нормальный" php-массив, поэтому count() будет работать так, как ожидалось, и я могу нормально его обрабатывать в php?

Наконец, этот массив может быть или не быть чрезвычайно большим порой. Функция jquery выше открывает ajax modal (я использую модальный как окно подтверждения для пользователя, действительно ли они хотят удалить записи в выбранном массиве), и я знаю, что метод $ _GET имеет ограничения на количество данных, которое он может проходить. Я не могу сделать $ _POST, потому что это модальный, и мне нужно загрузить его, а затем показать его... как еще я могу передать эти данные?

  • 0
    Как выглядит ваш массив jquery?
  • 0
    Смотрите var_dump, который я разместил выше. Я использовал selected.push для его создания.
Показать ещё 6 комментариев
Теги:
arrays

1 ответ

0
$_GET['selected']

возвращает STRING после того, как атрибут "выбран", а count (string) равен 1, независимо от того, что (это не многомерный массив, превышающий 1).

Что касается выделенного запятой строки, которую вы дали, вы можете использовать следующее:

  $selected = $_GET['selected'];
  //test wether the string has contents
  if(strlen($selected)!=0) {
     $selected_array = explode(',',$selected); //this is the new array that you want
  }
  else {
     //the string is empty
  }

Есть много строковых функций, которые вы можете проверить по адресу: http://www.php.net/manual/en/ref.strings.php

  • 0
    Итак, как я могу сделать настоящий тест, если массив имеет фактическое содержимое или нет? Использование этого count () вернет 1, если фактические идентификаторы не переданы, как вы указали выше. Если есть содержимое, оно возвращает правильное значение, но меня интересует только «ничего» или «что-то».
  • 1
    Нет ... он возвращает 1 ... переменная является array(1) { [0]=> string(0) "" }
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню