Я передаю массив 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, потому что это модальный, и мне нужно загрузить его, а затем показать его... как еще я могу передать эти данные?
$_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
array(1) { [0]=> string(0) "" }