За последние 24 часа нас посетили 15779 программистов и 1665 роботов. Сейчас ищут 877 программистов ...

Передача объектов из JS в PHP и наоборот при помощи AJAX

Тема в разделе "PHP для новичков", создана пользователем Человек, 29 авг 2009.

  1. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Доброго времени суток.

    На стороне клиента использую JS на сервере PHP. До недавнего времени обмен между ними не вызывал особых сложностей, так как данные были простыми и их было не много. Но по мере работы столкнулся с необходимостью передавать массивы объектов с одной стороны на другую. Весь вчерашний день посвятил попыткам вникнуть в возможные варианты решения. Наиболее понятынм оказалось использование JSON как формата передачи данных. К сожалению ничего не получилось. На стороне клиента массив преобразовывается в JSON нормально, а на сервере получить массив не могу. Не могли бы Вы привести строки поучения массива из JSON на стороне сервера (PHP json_decode поддерживает)

    Код (Text):
    1.   $arr=$_POST['arr'];// получение JSON строки
    2.   ?????????????? //  json_decode($arr); как правильно использовать
    3.   $arr;
    А так же взможно там есть подводные камни?

    Если есть решения не на основе JSON и оно более оптимально, прошу направить в нужное русло. [/code]
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Сейчас ты передаешь весь массив закодированый в json-строку в переменной arr. Можешь каждый элемент массива передавать в переменной вида arr[1], arr[2] и т.п., PHP их соберет в массив в $_POST['arr'].

    Включеные magic_quotes_gpc экранируют кавычки.
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Беда, не заметил что речь идет о объектах. Объекты из яваскрипта не будут работать в пхп. Их можно использовать только как массивы.
     
  4. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    Да, спасибо. проблема была именно в экранировании, json_decode не принимал кавычки.

    А что Вы имели в виду под словами "не будут работать в пхп", всмысле нельзя обращаться к методам, только к свойствам как элементам массива?
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Что к свойствам нельзя обращаться как к свойствам. Т.е. в javascript это объект, в php - массив.