Мне трудно передать переменную postData
, являющуюся объектом сериализованного массива jQuery, в вызов вложенного дочернего элемента .ajax()
. postData
успешно передается на первый вызов .ajax()
, но когда я пытаюсь использовать его во втором вызове .ajax()
, он не публикует никаких элементов формы, поскольку переменная не определена на этом уровне:
$(".myForm").submit(function () {
var postData=$(this).serializeArray();
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./insertComment.php",
data : postData,
success: function() {
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./getComments.php",
data : postData,
success: function(comments) {
$(".Comments").html(comments);
}
});
}
});
return false;
});
Я пытался создать вторую переменную _postData
, пытаясь увековечить переменную при следующем вызове .ajax()
, но это не удалось (также попытался var _postData=$(this).parent().serializeArray();
, но я все еще не смог увековечить переменную):
$(".myForm").submit(function () {
var postData=$(this).serializeArray();
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./insertComment.php",
data : postData,
success: function() {
var _postData=$(this).serializeArray();
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./getComments.php",
data : _postData,
success: function(comments) {
$(".Comments").html(comments);
}
});
}
});
return false;
});
Я попытался реализовать так называемое закрытие JavaScript (что я до сих пор не совсем понял), но это привело к большему количеству неопределенных переменных и большему количеству ошибок:
$(".myForm").submit(function () {
var postData = function() {
$(this).serializeArray();
}();
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./insertComment.php",
data : postData,
success: function() {
$.ajax({
type : "POST",
async : false,
cache : false,
url : "./getComments.php",
data : postData,
success: function(comments) {
$(".Comments").html(comments);
}
});
}
});
return false;
});
Я пытался искать и пытался реализовать несколько других методов, включая обход jQuery (.parent()
, .filter()
и т. Д.), Но безуспешно. Я знаю, что это общая проблема для многих людей, но пока я не нашел простого, понятного решения. Любые предложения будут ценны. Спасибо!