#forms #coldfusion
#формы #coldfusion
Вопрос:
У меня есть форма coldfusion, которую пользователь может принимать или отклонять записи. На странице есть две «кнопки отправки». Две кнопки отправки имеют разные значения. Это не полный код, а пример. Страница не будет отправлена. Сообщения об ошибке нет, и записи не обновляются, для меня cfif должен работать.
<cfif form.isupdate eq 1
<cfif form.go is 1>
<cfquery name="acceptRecords" datasource="db">
Update table....
</cfquery>
<cfif form.go is 2>
<cfquery name="rejectRecords" datasource="db">
UPDATE table...
</cfquery>
<cfelse
<cfoutput>
<form id="acceptReject" name="acceptReject" method="post" action="">
</cfoutput>
<table class="action-table">
<tr>
<td align="left">Click on <img src="images/GoRed.gif" VALUE="1" ALT="Go" NAME="goAccept" style="border-style: none" id="goRedAcceptIMG" /> to <font color="red">ACCEPT</font> selected Network Tools.</td>
<td align="left">Click on <img src="images/GoRed.gif" VALUE="2" ALT="Go" NAME="goReject" style="border-style: none" id="goRedRejectIMG" /> to <font color="red">REJECT TRANSFER</font> selected Network Tools.</td>
</tr>
</table>
<input type="hidden" name="isupdate" value="1"/>
<!--- Output results--->
<table class="results-table" id="results">
<thead>
<tr>
<th>No.</th>
<th align="center"><img src="images/checkbox.gif" id="checkAll" name="checkAll"></th>
<th>Tag#</th>
<th>Serial#</th>
</tr>
</thead>
<tbody>
<cfoutput query="SearchResults" >
<td>#ARnetworkToolSearchResults.currentrow#</td>
<td align="right"><input name="selectedTools" type="checkbox" class="chkaction" id="#SearchResults.ID#" value="#SearchResults.ID#"/></td>
<td>#SearchResults.BST_ID#</td>
<td style="width:100px;">#SearchResults.SERIAL_NUM#</td>
</tr>
</cfoutput>
</tbody>
</table>
</form>
</cfif>
Комментарии:
1. Код, который вы включили, немного поверхностный, чтобы быть полезным. Если у вас возникли проблемы с каким-либо кодом, вам необходимо опубликовать фактический код. Не является частичной частью какого-то другого кода, который даже (в этом примере) фактически не имеет функциональности до проверки, т. Е. Кнопки отправки). Что, по-вашему, мы должны делать с этим кодом? (серьезный вопрос). Могу ли я порекомендовать вам прочитать это и пересмотреть свой вопрос: cfmlblog.adamcameron.me/2013/09 /… , включая все, на что я ссылаюсь в нем.
2. Я рекомендую вам сократить свой код только до соответствующих битов, которые демонстрируют проблему (как для вас, так и для нас). По пути вы, вполне возможно, решите проблему для себя, но если нет, у вас будет хороший краткий фрагмент кода, чтобы показать нам, и что мы можем запустить и увидеть то же самое, что и вы.
3. Если вы сомневаетесь, посмотрите на свои данные. Начните с cfd-сброса вашей формы. Затем, когда вы перейдете к материалу if else, выведите такие вещи, как yes и no, чтобы увидеть, что произошло в этих точках.
4. Это сопряжено обратно. Если я дам меньше, вы все скажете, что мне нужно больше. Проблема где-то в cfif. Если у меня есть только одна отправка, она работает нормально. Когда я добавил вторую отправку, тогда ни одна из них не сработала. Вопрос остается. Как мне получить две отправки на странице самостоятельной отправки, где есть два разных обновления базы данных. ЕСЛИ проблема не в cfif, то что вы рекомендуете для вопроса как мне добавить две отправки в самоподписывающуюся форму coldfusion?
5. Я дал рекомендацию, но вы решили ее проигнорировать. Я также отмечаю, что ваш CFML в верхней части примера на самом деле недействителен (т. Е. Он даже не будет компилироваться), так что это не тот код, который вы используете. Вы вроде как тратите время всех здесь. Опубликуйте фактический код, предварительно избавившись от всего, что на самом деле не влияет на ситуацию (например, наценка, не связанная с проблемой). Вы уже должны делать это как часть вашего собственного устранения неполадок. Если вы не предоставите последовательный код, который показывает проблему, как можно вам помочь? Вы читали те ссылки, на которые я вам указал?
Ответ №1:
Вы ищете что-то подобное?
<cfif cgi.request_method EQ "post" AND form.go EQ 1>
<!--- Do 1 --->
</cfif>
<cfif cgi.request_method EQ "post" AND form.go EQ 2>
<!--- Do 2 --->
</cfif>
<form action="" method="post">
<!--- checkbox and whatever else --->
<button name="go" value="1">Action 1</button>
<button name="go" value="2">Action 2</button>
</form>
Ответ №2:
Как бы то ни было, я не вижу ни одного элемента формы с именем «GO». Единственное место, которое я вижу, находится внутри тега, который, по-видимому, не будет идентифицирован CF. Если вам нужны 2 кнопки отправки, и обе ведут к разным действиям, вы можете назвать их по-разному, например
<input type="submit" name="AcceptBtn" value="Accept">
<input type="submit" name="RejectBtn" value="Reject">
теперь в форме отправки:
<cfif structKeyExists(form,"AcceptBtn")>
do first action
<cfelseif structKeyExists(form,"RejectBtn")>
do another action
</cfif>
Ответ №3:
Форма = действие»» пустое. Ваша форма никуда не отправляется.
Я считаю, что вам нужно заполнить атрибут action.
Комментарии:
1. Я собирался сказать то же самое, пока не попробовал.
2. Пустой атрибут ‘action’ отправит сообщение обратно на тот же URL
3. Я подумал то же самое, а потом прочитал, что она может быть пустой. В процессе производства я добавлю название страницы.