С помощью $('#form').serialize()
, я смог отправить это на страницу PHP. Теперь, как мне десериализовать это в PHP? Он был сериализован в JQuery.
php
jquery
serialization
Джин Бин
источник
источник
Ответы:
Вам не нужно ничего десериализовать в PHP из
serialize
метода jquery . Если вы сериализуете данные, они должны быть отправлены в PHP в качестве параметров запроса, если вы используете ajax-запрос метода GET, или отправлять переменные, если вы используете ajax-запрос POST. Таким образом, в PHP вы должны получить доступ к таким значениям, как$_POST["varname"]
или в$_GET["varname"]
зависимости от типа запроса.serialize
Метод просто принимает форму элементов и помещает их в виде строки."varname=val&var2=val2"
источник
serialize
возвращаемую строку . Смотрите действительно популярный ответ ниже.При условии, что ваш сервер получает строку, которая выглядит примерно так (что должно быть, если вы используете jQuery
serialize()
):... что-то вроде этого, вероятно, все, что вам нужно:
$params
должен быть массив, смоделированный, как вы ожидаете. Обратите внимание, что это работает и с массивами HTML.Для получения дополнительной информации см. Следующее: http://www.php.net/manual/en/function.parse-str.php
Надеюсь, это полезно. Удачи!
источник
// JQuery Post
// jquery.post сериализованный формат var - TO - PHP Array
// Вы получаете то же самое
источник
источник
На странице HTML :
на странице PHP :
на этом php-коде возвращаем
f1
поле.источник
Почему бы не использовать ассоциативный массив, чтобы вы могли использовать его легко
С уважением
источник
$i = 0;
Модифицированный ответ Муртазы Хуссейна :
источник
Просто сделай это
источник
Я не знаю, какую версию Jquery вы используете, но это работает для меня в jquery 1.3:
Затем вы можете получить доступ к ключам массива POST, как это обычно делается в php. Просто попробуйте с
print_r()
.Я думаю, что вы оборачиваете сериализованное значение формы в свойство объекта, что, насколько я знаю, бесполезно.
Надеюсь это поможет!
источник
Это в ответ на пользователя 1256561. Спасибо за вашу идею ... однако я не позаботился о вещах декодирования URL, упомянутых в шаге 3.
так вот код php, который будет декодировать данные сериализованной формы, если кому-то еще это понадобится. Кстати, используйте этот код по своему усмотрению.
Ввод данных поста URL будет выглядеть следующим образом: attribute1 = value1 & attribute2 = value2 & attribute3 = value3 и т. Д.
Вывод вышеуказанного кода будет по-прежнему в массиве, и вы можете изменить его, чтобы присвоить его любой переменной, которую вы хотите, и это зависит от того, как вы хотите использовать эти данные в дальнейшем.
источник
Вам просто нужно имя атрибута значения в форме. Пример :
форма
Javascript
PHP - index.php
источник
Использование:
PHP получить массив, не нужно десериализовать;)
источник
Я думаю, что вам нужно отделить имена форм от их значений, один из способов сделать это - взорвать,
(&)
чтобы вы получилиattribute=value,attribute2=value
.Я хочу сказать, что вы преобразовываете сериализованную строку jQuery в массивы в PHP.
Вот шаги, которые вы должны выполнить, чтобы быть более конкретными.
jQuery
наPHP
страницу (напримерajax.php
), где вы используете$.ajax
представить , используя почту или получить.(&)
разделенные таким образом атрибуты. Теперь вы получите attribute1 = value, attribute2 = value, теперь вы получите переменную массива php. например$data = array("attribute1=value","attribute2=value")
foreach
на$data
и , так что вы можете отделить атрибут от значения, и убедитесь , что значения , так что она будет преобразовывать сериализованы значения к значению , которое вам нужно, и вставить атрибут и его значение новой переменной массива, который хранит атрибут и значение сериализованной строки.explode
(=)
urldecode
Дайте мне знать, если вам нужны дополнительные разъяснения.
источник
Вы можете использовать эту функцию:
Как это использовать
источник