У меня проблемы с передачей параметров / переменных в функцию ajax ().
Приведенная ниже функция принимает два параметра.Одним из них является 'element' - опция успеха .ajax (), которая отлично работает, поэтому не нужно фокусироваться на этом.«Tx» - это либо одно значение, например «menu», либо пара значений, разделенных двоеточием, например: «menu: Categories: бренды»
Если в «tx» есть только одно значение, то толькоОдин AJAX-запрос должен быть отправлен, и это прекрасно работает.Если в «tx» имеется более одного значения, функция разделяет его, используя «:», как разделитель, а затем передает смещение [0] как значение «tx» в запрос AJAX, а затем сохраняет остальные значения в «x '.
У меня возникли проблемы с рекурсивным выполнением этой функции после завершения запроса AJAX для первого значения.Var 'more' хранит значение bool, если для обработки осталось больше значений или нет.Однако, когда я записываю аргумент if, используя 'more == true', в параметр успешности или завершения .ajax (), он не отражает значение, хранящееся в этих переменных, он всегда возвращает false.
Прежде чем кто-то ответит: «Вы должны структурировать функцию, которая вызывает эту функцию, чтобы передавать только одно значение в этот параметр», давайте предположим, что это невозможное предприятие, которое находится за пределами сферы моего контроля.
Я понятия не имею, почему это происходит.Я знаю, что это, наверное, что-то очень простое, что я упускаю из виду, но я проснулся уже около 16 часов, и эта проблема мучила меня как минимум половину этого времени.
Любая помощь здесь приветствуется.Вот функция:
function getContent(element, tx) {
e = element
modAmount = tx.split(':')
if (modAmount.length > 1) {
x = ''
tx = modAmount[0]
for (i=1;i<modAmount.length;i++) {
x = x + modAmount[i]
if (i != (modAmount.length)-1){
x = x+":"
}
}
more = true
}
else {
more = false
tx = modAmount[0]
}
$.ajax({
type: "POST",
url: "getModule.php",
data: "modName="+tx+"&DB=<?php echo DB ?>",
success: function(data){
if ($( element ).find('p').text() == "No Content"){
$( element ).find('p').remove();
$( element ).html("<div onclick='destroy(this)' id='destroy' class='ui-corner-all destroy' title='Remove Module'>"+data+"</div>")
}
else {
$( element ).append("<div onclick='destroy(this)' id='destroy' class='ui-corner-all destroy' title='Remove Module'>"+data+"</div>");
}
},
complete: function() {
if (more == true) {alert(x)} // always returns false
}
});
}