Можем ли мы передать всю структуру через URL? - PullRequest
2 голосов
/ 30 апреля 2010

Я открываю новое всплывающее окно по щелчку URL на моей странице. Мой вопрос здесь: Могу ли я передать всю структуру на новую страницу?

Если это невозможно, есть ли простой способ сделать это?

Ответы [ 5 ]

8 голосов
/ 30 апреля 2010

Открывается ли страница в части URL того же приложения?

Если так, то лучшим способом было бы сохранить структуру в сеансе пользователя и извлечь информацию таким образом. Более чистые URL, код и более безопасный.

Ура, Джеймс

1 голос
/ 30 апреля 2010

Расширяя ответ Джеймса Бекингема ...

(Предполагается, что для управления сеансом установлено значение true.)

На странице вызова просто скопируйте свою структуру в переменную сеанса:

<cfset session.myTempStruct=variables.myTempStruct />

Затем во всплывающем окне скопируйте структуру обратно в локальную область для этого запроса:

<cfset variables.myTempStruct=session.myTempStruct />

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

<cfset structDelete(session, "myTempStruct") />
1 голос
/ 30 апреля 2010

Хотя ВЫСОКО НЕ рекомендуется, вы можете сделать это:

<cfset tmp = {} />
<cfset tmp.name="Marcos" />
<cfset tmp.lname="Placona" />

<cfwddx action="cfml2wddx" input="#tmp" output="tmpWDDX">

<a href="index.cfm?string=#tmpWDDX#">link</a>

Если вы решите воспользоваться этим подходом, я бы рекомендовал отправлять информацию через форму, а не по URL-адресу.

У вас всегда есть возможность сохранить данные в постоянном объекте, таком как бин, или в более простом подходе, таком как сеанс.

Надеюсь, это поможет вам

0 голосов
/ 30 апреля 2010

Serializing Struct (с serializeJSON () или чем-то еще) и вставка git в URL кажется разумной, если структура не слишком велика (читай: всего менее 3-4 тыс. Символов).

Другим решением было бы поместить это в некоторую общую область: сеанс, приложение и т. Д.

В-третьих, было бы вызвать cfm с запросом POST, который может обрабатывать более крупные структуры, чем GET.

0 голосов
/ 30 апреля 2010

Вы можете добавить свои точки данных в качестве параметров в конец URI, но я не рекомендую использовать метод, который вы видите, так как он будет сильно подвержен инъекции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...