2015-11-19 3 views
1

В моем коде я выполняю запрос Ajax и отправить это содержание:

Object {appointment_data: "{"id_services":["13","13"],"id_users_provider":"86…lable":false,"id":"133","id_users_customer":"87"}", customer_data: "{"first_name":"Mario","last_name":"Rossi","email":…:"","city":"","zip_code":"","notes":"","id":"87"}"} 
appointment_data: "{"id_services":["13","13"],"id_users_provider":"86","start_datetime":"2015-11-19 13:43:00","end_datetime":"2015-11-19 14:55:00","notes":"","is_unavailable":false,"id":"133","id_users_customer":"87"}" 
customer_data: "{"first_name":"Mario","last_name":"Rossi","email":"[email protected]","phone_number":"0000","address":"","city":"","zip_code":"","notes":"","id":"87"}" 

NB: это содержание включено в appointment переменной, что это JSON кодирования:

JSON.stringify(appointment); 

Теперь с PHP стороны, внутри вызываемой функции Я пытаюсь получить id о назначении таким образом:

$_POST['appointment_data']['id']; 

, но я получаю эту ошибку:

Illegal string offset 'id'

Я также попытался с .id но тот же появляются.

NB: если я выполню gettype() Я получаю строку на $_POST['appointment_data'] Возможно, это проблема? Как я могу это исправить?

VAR DUMP PRINT

array(2) { ["appointment_data"]=> string(216) "{"id_services":["13","15","14"],"id_users_provider":"86","start_datetime":"2015-11-19 09:45:00","end_datetime":"2015-11-19 10:57:00","notes":"Appuntamento ","is_unavailable":false,"id":"131","id_users_customer":"87"}" ["customer_data"]=> string(146) "{"first_name":"Mario","last_name":"Rossi","email":"[email protected]","phone_number":"0000","address":"","city":"","zip_code":"","notes":"","id":"87"}" } 
+0

Try сделать '$ _POST ['assign_data'] -> id;' (Сомневаюсь, что это сработает, но это того стоит!) –

+0

Разве вам не нужно разбирать/декодировать его? – FirstOne

+0

с подсказкой sam Получаю: Сообщение: Попытка получить свойство не-объекта Я должен его разобрать? – Dillinger

ответ

3

PHP не будет автоматически конвертировать строку JSON в объект. Комбинация HTTP POST и PHP просто не интуитивно понятна и, вероятно, не должна пытаться быть. Ваш самый большой ключ к проблеме ваше заявление здесь:

if I execute gettype() I get string on $_POST['appointment_data']

В таком случае это строка, и строка не имеет id индекс. Если вы хотите, чтобы преобразовать эту строку JSON в объект, PHP предоставляет способ сделать это:

$myObj = json_decode($_POST['appointment_data']); 

В этой точке значение, которое вы ищете, должны быть доступны:

$myObj->{'id'} 
+0

Это работает отлично, спасибо человеку. Хорошего дня :) – Dillinger

Смежные вопросы