Надеюсь, это легко исправить, но вот моя ситуация.
Пользователь вводит номер записи и возвращает форму с числом строк X (поток данных взят из внешнего источника данных, поэтому я не могу контролировать способ ввода данных). Я использую jQuery для сериализации формы, а затем отправляю эту информацию на другую страницу с помощью вызова ajax. На странице действий я перебираю данные с помощью знака & (coldfusion cfloop). Проблема, которая появилась сегодня, заключается в том, что в некоторых случаях одно из полей формы может содержать амперсанд (&), который прерывает цикл на странице действий.
Кто-нибудь есть какие-либо предложения о том, как обойти это?
Вот моя функция ajax
var str = $("#ResourceRequest").serialize();
$.ajax({
type: "POST",
url: "index.cfm?do=misc.submitRequest&wddxString=" + encodeURIComponent(str),
data: str,
contentType: "application/json; charset=utf-8",
dataType: "html",
beforeSend: function() {
// $('#spinner').css("visibility","visible");
},
success: function(data) {
// $('#spinner').css("visibility","hidden");
$('#submitRequest_status').html(data);
$('#btnSave').html('Submit Request').attr('disabled','');
},
error: function() {
$('#btnSave').html('Submit Request').attr('disabled','');
// $('#spinner').css("visibility","hidden");
alert("We apologize for the inconvenience but\nwe were unable to process your request. [error: 258]");
// $('#submitRequest_status').html('');
}
}); * * 1 010
А вот и мой CFLOOP
<cfset var i=0>
<cfloop list="#s#" index=curr_val delimiters="&">
<cfset attr=ListGetAt(curr_val & " ",1,"=")>
<cfset val=ListGetAt(curr_val & " ",2,"=")>
<cfif attr EQ "vpmo">
<cfset PROJVPMO=ListAppend(PROJVPMO,val)>
<cfelseif attr EQ "projectname">
<cfset PROJNAM=ListAppend(PROJNAM,val)>
<cfelseif attr EQ "pmt">
<cfset PROJPMT=ListAppend(PROJPMT,val)>
<cfelseif attr EQ "kickoff">
<cfset PROJKIC=ListAppend(PROJKIC,val)>
<cfelseif attr EQ "goLive">
<cfset SYSGOLI=ListAppend(SYSGOLI,val)>
</cfif>