Как я могу обработать большую строку JSON в TYPO3

Я разработал небольшое расширение для заказа, где клиенты могут создать визитную карточку. Это расширение использует холст в ассоциации с fabric.js.

Клиенты могут добавлять текст, простые формы, изображения и т. Д., И результатом ее настройки является строка json, которую я связываю через jquery со скрытым вводом, чтобы сохранить эти данные в изображении свойства при отправке формы.

ЖИДКОСТИ:

<f:form.hidden class="custom-image" property="image" />

JS:

$('.step3 .custom-image').val(getJsonOfCanvas());

HTML результат:

<input class="custom-image" type="hidden" name="tx_example_orderform[step3data][image]" value="{&quot;objects&quot;:[{&quot;type&quot;:&quot;rect&quot;,&quot;originX&quot;:&quot;left&quot;,&quot;originY&quot;:&quot;top&quot;,&quot;left&quot;:761,&quot;top&quot;:181,&quot;width&quot;:50,&quot;height&quot;:50,&quot;fill&quot;:&quot;#68e5e7&quot;,&quot;stroke&quot;:null,&quot;strokeWidth&quot;:1,&quot;strokeDashArray&quot;:null,&quot;strokeLineCap&quot;:&quot;butt&quot;,&quot;strokeLineJoin&quot;:&quot;miter&quot;,&quot;strokeMiterLimit&quot;:10,&quot;scaleX&quot;:1,&quot;scaleY&quot;:1,&quot;angle&quot;:0,&quot;flipX&quot;:false,&quot;flipY&quot;:false,&quot;opacity&quot;:0.8,&quot;shadow&quot;:null,&quot;visible&quot;:true,&quot;clipTo&quot;:null,&quot;backgroundColor&quot;:&quot;&quot;,&quot;fillRule&quot;:&quot;nonzero&quot;,&quot;globalCompositeOperation&quot;:&quot;source-over&quot;,&quot;transformMatrix&quot;:null,&quot;params&quot;:{&quot;base&quot;:1,&quot;x&quot;:761,&quot;y&quot;:181,&quot;scaleX&quot;:1,&quot;scaleY&quot;:1},&quot;rx&quot;:0,&quot;ry&quot;:0}],&quot;background&quot;:&quot;&quot;}">

Таким образом, модификации визитной карточки увеличивают ценность этого скрытого ввода -> много модификаций = большая строка json.

На более позднем этапе заказа клиенты могут проверять и редактировать ее записи, а также снова редактировать ее визитную карточку. По этой причине я использую ту же самую строку json, чтобы загрузить холст снова:

FLUID (немного сложно, потому что это встроенный JS):

 <script type="text/javascript">
<![CDATA[var jsonCanvasString = ]]>
    <f:if condition="{step3data.image}">
        <f:then>
            <f:format.htmlentitiesDecode>{step3data.image}</f:format.htmlentitiesDecode>
        </f:then>
        <f:else>
            ''
        </f:else>
    </f:if>
<![CDATA[;]]>
</script>

JS:

if (typeof jsonCanvasString !== 'undefined') {
    canvas.loadFromJSON(jsonCanvasString, canvas.renderAll.bind(canvas));
}

Это прекрасно работает, когда строка json не так велика, но когда он слишком длинный, я получаю пустую страницу, и ничто не будет отображаться, но если я отлаживаю свое свойство image, я вижу, что свойство image все еще установлено:

введите описание изображения здесь

Какие-либо предложения? Может быть, есть лучший способ сохранить строку json и передать его из js в php или из php в js?

Надеюсь, вы можете помочь мне:)

0 ответов

Другие вопросы по тегам