Проверка нескольких форм для подачи на одной странице в Coldfusion - PullRequest
4 голосов
/ 20 июля 2010

Привет еще раз stackoverflow ...

Еще раз у меня неприятная проблема. У меня есть страница, где я использую вкладки jQuery, чтобы разделить три формы обновления. (На самом деле два, один - это cfgrid, поэтому он не считается). В принципе, когда вы отправляете первую вкладку формы, это нормально. Однако, если вы отправляете последнюю форму, она отправляет и обновляет страницу, но ничего не обновлялось.

Я решил, что это как-то связано с определением, какая форма отправляется.

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

<cfif isdefined("form.submit")>
//database stuff etc
</cfif>

Я отправляю формы, делая это в конце:

<input type="submit" name="submit" id="button"  value="Save Changes" onclick = "form.submit()" />

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

<input type="submit" name="submit" id="button"  value="Save Changes" onclick = "document.forms["form3"].submit()" />

Я не уверен, что это самый эффективный способ сделать это ... и я не уверен, как конкретно указать, что form3 отправляется в разделе Coldfusion ... Я попытался:

<cfif isdefined("form3.submit")>

но это не работает. Это не следует через код.

Примечание: я использую coldfusion 8. Кроме того, использование тегов CFAJAX ограничено, потому что наш отдел ITS неправильно настроил coldfusion на сервере ... и они не верят мне. Поэтому я любезно вынужден сделать это ... странным образом. Он поддерживает cfgrid только по какой-то странной причине ...

Ответы [ 2 ]

8 голосов
/ 20 июля 2010

ColdFusion (как и любой серверный язык) не знает, какой идентификатор может быть у ваших форм - он знает только то, что вы отправили через поля ввода (и выберите / textarea / etc), и помещает его в область формы.

Чтобы делать то, что вы хотите, вам нужно что-то вроде:

<form>
    ....
    <input type="submit" name="submit1" value="Save Changes"/>
</form>

<form>
    ....
    <input type="submit" name="submit3" value="Save Changes"/>
</form>

Затем на стороне CF вы проверяете, в какой форме:

<cfif StructKeyExists(Form,'Submit1')>
...
</cfif>

или

<cfif StructKeyExists(Form,'Submit3')>
...
</cfif>
0 голосов
/ 20 июля 2010

Ха, я понял это!Вы должны сделать имена отправителей разными в каждой форме.

<input type="submit" name="submitDoc" id="button"  value="Save Changes" onclick = "document.forms["form3"].submit()" />

Я просто изменил имя отправителя на submitDoc

<cfif isdefined("form.submitDoc")>

Работает!

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