Передача ввода формы с помощью Coldfusion на внешний URL

Я пытаюсь передать ввод формы на внешний URL-адрес для использования где-то еще и выполнить определенную задачу. Проблема, с которой я сталкиваюсь, заключается в том, чтобы получить значение и передать его. Я получаю либо LotNumber is undefined, либо ошибку при выполнении Cfquery. Я пытался использовать CFPARAMоднако я думаю, что неправильно понимаю, что делает cfparam. Надеюсь, это что-то простое.

Вот код:

<table border="1" cellpadding="3" cellspacing="0" rules="GROUPS" frame="BOX" width="100%" bordercolor="#C0C0C0" bgcolor="#FFFFFF">
<thead>
<tr height="28">
    <td colspan="4"><b>Outstanding Shipping</b></td>
    <CFOUTPUT>
    <cfparam name="Show_SampleLogSheet.Passed_LotNumber" default="" />
    <td align="left" colspan="1">
        <input class="frm3" type="text" id="Outstanding_Passed_LotNumber" size="3" maxlength="6" tabindex="25" style="background-color: ##838383;border:1px solid ##000000; color:white">
        <form name="Show_SampleLogSheet" class="frm" action="/Buying/Shipping_Advice/Index.cfm?Passed_CustomerID=#Passed_CustomerID#&Passed_ShippingAdviceID=#Get_ShippingAdvice.ShippingAdviceID#&Passed_Lot_Number=#Show_SampleLogSheet.Passed_LotNumber#&Passed_Activate=1" method="post" style="display: inline">
            <input type="hidden" name="Passed_CustomerID" value="#Passed_CustomerID#">
        <input class="frm3" type="text" name="Passed_LotNumber" value="#Show_SampleLogSheet.Passed_LotNumber#" size="3" maxlength="6" tabindex="25">
            </form>
        </td>
    </CFOUTPUT>

Я очень ценю любую помощь.

Спасибо


person G.Rose    schedule 27.09.2018    source источник
comment
1. Что за переменная Show_SampleLogSheet? Это запрос, структура, объект? 2. Подумайте о том, чтобы сделать все ваши переменные скрытыми полями. 3. Используйте encodeForURL или encodeForHTMLAttribute для этих переменных. Кто знает, что в них есть. 4. ОТ: Это какой-то старый добрый HTML на столе. Тем не менее, вы используете CSS для других вещей. Рассмотрите 100% CSS   -  person James A Mohler    schedule 27.09.2018
comment
Имя формы Show_SampleLogSheet. 4. Коду ~5 лет, но я согласен   -  person G.Rose    schedule 27.09.2018
comment
Как отправить форму?   -  person Shawn    schedule 27.09.2018
comment
Введите ключ, и это идеально отправляет данные по URL-адресу   -  person G.Rose    schedule 27.09.2018
comment
Забавно, что я могу использовать переменную #Passed_LotNumber# в любом другом месте. Это просто форма   -  person G.Rose    schedule 27.09.2018
comment
Show_SampleLogSheet.Passed_LotNumber не относится к переменной form. Ваша переменная form называется только Passed_LotNumber. Поскольку вы используете . в имени параметра, CF может не создавать Passed_LotNumber там, где вы думаете. Переменные могут стать очень странными, если вы используете точки в имени.   -  person Shawn    schedule 27.09.2018


Ответы (2)


Для имен клиентская сторона. ColdFusion вообще не нуждается в их именах. (Код был несколько упрощен

      <cfparam name="Passed_LotNumber" default="" />

Не знаю, для чего это поле. Он не находится внутри тега формы, поэтому он не будет передан при отправке.

      <input class="frm3" type="text" id="Outstanding_Passed_LotNumber" size="3" maxlength="6" tabindex="25" style="background-color: ##838383;border:1px solid ##000000; color:white">

Настоящая форма начинается здесь. Обратите внимание, что pass_LotNumber ничего не нужно

      <form name="Show_SampleLogSheet" class="frm" action="/Buying/Shipping_Advice/Index.cfm?Passed_CustomerID=#Passed_CustomerID#&Passed_ShippingAdviceID=#Get_ShippingAdvice.ShippingAdviceID#&Passed_Lot_Number=#Passed_LotNumber#&Passed_Activate=1" method="post" style="display: inline">
      <input type="hidden" name="Passed_CustomerID" value="#Passed_CustomerID#">
      <input class="frm3" type="text" name="Passed_LotNumber" value="#Passed_LotNumber#" size="3" maxlength="6" tabindex="25">

person James A Mohler    schedule 27.09.2018
comment
Спасибо, но не помогло. По-прежнему возникает ошибка Passed_LotNumber not defined, а параметр вызывает некоторые другие ошибки в коде. - person G.Rose; 27.09.2018
comment
Я только что обновил ответ. Я вижу, что вы нажимаете переменную сохранения двумя разными способами. (Плохая идея) - person James A Mohler; 27.09.2018
comment
Ну, я думаю, что я иду об этом неправильно. Когда вы отправляете форму, она не отправляет все входные данные на URL-адрес действия? - person G.Rose; 27.09.2018
comment
Перемещаются только поля между началом тега ‹form› и концом тега формы. Если ваша «форма» выполняет GET вместо POST, то все, что является полем формы, переходит в URL-адрес. Это запутанный путь вниз. Для вашего собственного здравомыслия я рекомендую всегда использовать POST и, если вы сомневаетесь, вставлять поле через скрытое поле, а не через URL-адрес. Причина этого в том, что вы захотите обработать передаваемые данные. Иметь все в области form. — это хорошо. - person James A Mohler; 27.09.2018
comment
@ G.Rose- Хотя cfparam обычно не требует определения области видимости переменных, обычно вы должны указать ожидаемую область действия переменной (область FORM при использовании сообщения, область URL-адреса для получения). В противном случае CF берет первую найденную переменную с таким именем, что не всегда является правильным. Тем не менее, изменение устаревшего кода не всегда позволяет использовать передовой опыт. Однажды я добавил область видимости cfparam в огромное устаревшее приложение и мгновенно сломал его, потому что оказалось, что приложение передавало переменные как с POST, так и с GET. - person SOS; 27.09.2018

Оказывается, это было какое-то неправильное имя ввода. Вот фиксированный код:

<td align="left" colspan="1">
  <input class="frm3" type="text" id="Outstanding_Passed_LotNumber" size="3" maxlength="6" tabindex="25" style="background-color: ##838383;border:1px solid ##000000; color:white">
    <form name="Show_SampleLogSheet" class="frm" action="/Buying/Shipping_Advice/Index.cfm" method="post" style="display: inline">
      <input type="hidden" name="Passed_CustomerID" value="#Passed_CustomerID#">
      <input class="frm3" type="text" name="Passed_Lot_Number" size="3" maxlength="6" tabindex="25">
    </form>
</td>

Был параметр, который был спрятан где-то еще с именем Passed_Lot_Number вместо Passed_LotNumber. Прошу прощения, это какой-то супердерьмовый код, и он очень старый, поэтому все эти тупые головные боли. Спасибо всем

person G.Rose    schedule 27.09.2018