У меня есть чрезвычайно простой объект JSON, который выглядит следующим образом:
var data =
{
"id" : 1
}
Затем я декодирую это в PHP:
$decoded_data = json_decode(stripslashes($_POST['data'])); //this works
$id = intval($decoded_data->id); //in my debugger this is equal to 1 as expected
Затем я передаю переменную $ id в функцию, которая запрашивает базу данных и возвращает набор «Sub Activity»
$sub_activities = alp_get_all_sub_activities($id); //this function works as expected and returns the correct result set
Теперь, когда у меня есть дополнительные действия для назначенного $ id, я пытаюсь получить к ним доступ, используя цикл:
foreach ($sub_activities as $activity) {
echo __("<td><a id='" . $activity->id . "' href='' title='Activity'><div style=' border: 3px solid purple; width: 200px; height: 200px; overflow: scroll;'>" . $activity->name . "<br />" . $activity->id . "<br />" . $activity->description) . "</div></a></td>";
}
Моя проблема в том, что echo ничего не отображает, когда для $ id установлено значение intval ($ decoded_data-> id), но когда я жестко кодирую $ id = 1, тогда все работает, как ожидалось, и отображается в моем браузере. Я не совсем уверен, как решить эту проблему, потому что мой отладчик говорит мне, что когда я устанавливаю $ id = intval ($ decoded_data-> id); что $ id равно 1. Я могу сделать арифметику с этим числом, и похоже, что оно ведет себя как любое целое число, но по какой-то причине echo и print () ничего не отобразят.
Если у кого-то есть понимание, я буду очень признателен за ваш вклад.