2014-11-04 2 views
0

У меня есть объект, называемый $ todovalues ​​и формой. Мне нужно передать весь объект todovalues ​​через форму.Как передать объект в скрытую форму в php?

Моя форма выглядит -

<form action="" method="post"> 
<input class="todobuttons" type="submit" name="delete" value="delete"> 
<input class="todobuttons" type="submit" name="edit" value="edit"> 
<input type="hidden" name="post_item_info" 
value="<?php echo serialize($todovalues); ?>"> 
</form> 

я могу получить доступ к значениям в $ todovalues, используя что-то вроде эха $ todovalues-> текст.

Я попытался использовать serialize, json_encode и смесь обоих. Однако, когда я пытаюсь получить доступ к значению post, он всегда пуст.

Есть ли способ взять мой объект и добавить его к скрытому вводу без необходимости создавать отдельные скрытые входы для каждой части объекта, который я хочу?

json_encode($todovalues); 
json_encode(serialize($todovalues)); 
serialize($todovalues); 

Ни одно из вышеперечисленных функций еще не функционировало. Нет ли упрощенного метода для передачи всего объекта без итерации через объект в первую очередь? Просто кажется, что пустая трата пространства должна создавать скрытые входы для каждого элемента в объекте.

EDIT -

Когда я использую json_encode() я вижу следующее, так что я знаю, что должен существовать -

<input type="hidden" name="post_item_info" value="{" id_auto":"3","id":"1","id_list":"1","completed":"0","incident_notes":"apple"}"=""> 
+0

Я использовал бы 'json_encode()'. Когда вы просматриваете источник страницы, это значение заполнено? Если нет, есть еще одна проблема. –

+0

Возможно, вы должны создать метод внутри вашего объекта, чтобы вернуть все соответствующие значения в виде массива, который затем можно обработать с помощью json_encode. Показывая, что структура класса тоже поможет. Имейте в виду, что статические элементы не сериализованы. – vcanales

+0

@JayBlanchard Обновлено с содержанием json_encode – ILikeTurtles

ответ

0

Возможно, вы пытаетесь закодировать объект. Попробуйте перекодировать массив:

json_encode((array) $todovalues); 

UPD. Или, может это происходит потому, что ваш HTML выглядит следующим образом:

<input value="{"id":3....}"> (a lot of ") 

Вы можете попробовать base64_encode()

+0

Просто увидел это. Я переключился на одиночные кавычки, но base64, вероятно, лучшая идея. – ILikeTurtles

+0

Я добавил base64_encode, и теперь он отлично работает. Огромное спасибо. – ILikeTurtles

0

json_encode разрывалось из-за того, что я создал вход, используя двойные кавычки.

Система пила -

значение = "{" stuffGoesHere "

Я переключился на одинарные -

значение = '{ "stuffGoesHere"'

Он отлично работает сейчас.

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