Я надеюсь, что кто-то может помочь мне со следующим сценарием, потому что я разбиваю свою маленькую голову над этим! Я сделал обертку, поэтому я могу легко вызвать webservices/pagemethod с помощью jquery. Теперь в функции успеха вызова AJAX Я хочу, чтобы иметь возможность вызвать функцию (с дополнительными параметрами) я сделал следующее, но я не уверен, если я в правильном направлении:Обертка JQuery ajax с необязательными параметрами
function AjaxMethod(path, fn, paramArray, returnParamArray, successFn, errorFn) {
var paramList = '';
if (paramArray.length > 0) {
for (var i = 0; i < paramArray.length; i += 2) {
if (paramList.length > 0) paramList += ',';
paramList += '"' + paramArray[i] + '":"' + paramArray[i + 1] + '"';
}
}
paramList = '{' + paramList + '}';
if (returnParamArray.length > 0) {
$.ajax({
type: "POST",
url: path + "/" + fn,
contentType: "application/json; charset=utf-8",
data: paramList,
dataType: "json",
success: function() {
var strFun = successFn;
var strParam = returnParamArray;
var funcCall = strFun + "('" + strParam + "');";
//Call custom function with parameter array
var ret = eval(funcCall);
},
error: errorFn
})
}
else {
$.ajax({
type: "POST",
url: path + "/" + fn,
contentType: "application/json; charset=utf-8",
data: paramList,
dataType: "json",
success: successFn,
error: errorFn
})
}
; }
Я могу вызвать функцию, но я не могу передать параметры. Я иду в правильном направлении или это полностью с пути? Возможно ли даже передавать параметры/значения в виде массива. Или есть более простой способ достичь этого.
Кстати, мне нужна эта функция, чтобы составить следующие (схему) действий:
1) Пользователь deletetes строки из таблицы с данными - DeleteRow (RowIndex)
2) DeleteRow называет AjaxMethod для удаления строки из базы данных
3) При успешном событии я хочу, чтобы конкретная строка была удалена визуально, поэтому мне нужен выбранный rowindex, доступный в функции success. Есть еще несколько сценариев, поэтому нужно быть действительно динамичным.
Я также могу хранить эту информацию в глобальных vars, таких как CurrentDeletedIndex, но я надеюсь, что это возможно так, как я думал.
Надеюсь, я сделал себя немного понятным, если не расспрашиваю.
Спасибо за ваше время.
С наилучшими пожеланиями, Все
successFn передается как строка. Это не будет работать. –
@Josiah Ruddell исправлено, спасибо! –
Спасибо, Gabi en Josiah за ваше разъяснение, теперь функция успеха работает, но как мне получить результат (как результат ajax, так и возвращаемый paramlist) в функции успеха. Извините, я все еще учился, но спасибо вам большое! – Mark