Передача ввода из формы в Coldfusion Query - PullRequest
0 голосов
/ 28 сентября 2018

Здравствуйте. Я пытаюсь передать переменную, значение которой поступило бы из формы ввода в запрос, чтобы извлечь значение и передать обратно в форму как скрытое значение.Я получаю Passed_Lot_Number - неопределенная ошибка.

Вот код, который у меня есть на данный момент:

<CFOUTPUT>
    <cfquery name = "OutputDetails" datasource = "#Application.PrimaryDataSource#">
         SELECT ShippingAdviceID
         FROM ShippingAdvice
         WHERE CustomerID =  #Passed_CustomerID#
         AND LotNumber = #Passed_Lot_Number#
    </cfquery>
        <td align="left" colspan="1">
        <input class="frm3" type="text" id="Outstanding_Passed_LotNumber" size="3" maxlength="6" tabindex="25">
          <form name="Show_SampleLogSheet" class="frm" action="/Buying/Shipping_Advice/Index.cfm" method="post">
            <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>
</CFOUTPUT>

Простите, этот код действительно старый, и мне было поручено добавитьнемного больше функциональности к нему.Я очень ценю любую помощь.

Спасибо

Редактировать:

Вот обновленный код:

<CFOUTPUT>
   <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">
             <cfif structKeyExists(form, "Passed_Lot_Number ")>
                <cfquery name = "OutputDetails" datasource = "#Application.PrimaryDataSource#">
                    SELECT ShippingAdviceID
                    FROM tblShippingAdvice
                    WHERE CustomerID =  #Passed_CustomerID#
                    AND LotNumber = #Passed_Lot_Number#
                 <cfreturn Passed_ShippingAdviceID />
                </cfquery>
            </cfif>
        <input type="hidden" name="Passed_ShippingAdviceID" value="#Passed_ShippingAdviceID#">
      </form>
   </td>
</CFOUTPUT>

Ответы [ 2 ]

0 голосов
/ 01 октября 2018

Итак, я наконец-то решил проблему.Оказывается, я думал об этом неправильно.Еще один прекрасный пример понимания потока данных, прежде чем работать над чем-то.Оказывается, в общей сложности было 3 страницы, через которые были переданы данные.Это идет от Client -> Interface Page -> Display Results.Форма отправлена ​​в Interface Page, и оттуда я просто добавил логику, которая определила переменную Passed_ShippingAdviceID.Вот обновленный код формы:

<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="/Interface Page" 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">
      <input type="hidden" value="1" name="Passed_Activate">
      <input type="hidden" value ="" name = "Passed_ShippingAdviceID">
    </form>
</td>

Вот запрос на странице интерфейса, который определил Passed_ShippingAdviceID:

<cfif Passed_ShippingAdviceID IS "">
  <cfquery name = "OutputDetails" datasource = "#Application.PrimaryDataSource#">
        SELECT ShippingAdviceID
        FROM tblShippingAdvice
        WHERE CustomerID =  '#Passed_CustomerID#'
        AND LotNumber = '#Passed_Lot_Number#'
  </cfquery>
    <cfset Passed_ShippingAdviceID = OutputDetails.ShippingAdviceID>
</cfif>
0 голосов
/ 29 сентября 2018

Прежде всего, вы проверили это условие structKeyExists(form, "Passed_Lot_Number ").Это означает, что после отправки формы будет выполнена внутренняя часть кода условия.

Но, Вы дали код, кнопка отправки не требуется.Пожалуйста, добавьте кнопку отправки.

После отправки формы мы можем получить значение поля формы, как показано ниже,

form.Passed_CustomerID and form.Passed_Lot_Number

И вы должны поставить код <cfreturn Passed_ShippingAdviceID /> послетег <cfquery>.

Я добавил код.Надеюсь, это поможет.

<cfoutput>
    <cfparam name="Passed_ShippingAdviceID" default="0">
    <cfif structKeyExists(form, "submit")>
        <cfquery name = "OutputDetails" datasource = "#Application.PrimaryDataSource#">
            SELECT ShippingAdviceID
            FROM tblShippingAdvice
            WHERE CustomerID =  "#form.Passed_CustomerID#"
            AND LotNumber = "#form.Passed_Lot_Number#"
        </cfquery>
        <cfset Passed_ShippingAdviceID = OutputDetails.ShippingAdviceID>
    </cfif>
    <form name="Show_SampleLogSheet" class="frm" action="/Buying/Shipping_Advice/Index.cfm" method="post" style="display: inline">
        <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">
        <input type="hidden" name="Passed_CustomerID" value="#Passed_CustomerID#">
        <input class="frm3" type="text" name="Passed_Lot_Number" size="3" maxlength="6" tabindex="25">
        <input type="hidden" name="Passed_ShippingAdviceID" value="#Passed_ShippingAdviceID#">
        <input type="submit" value="submit" name="submit">
    </form>
</cfoutput>

Спасибо,

...