Ajax-файл перестает выполняться - PullRequest
0 голосов
/ 30 мая 2011

У меня есть этот фрагмент кода AJAX, который работает правильно, потому что он обновляет мою базу данных, только после того, как он не выполняет остальную часть моего кода ...

$(".getPoint").click(function()
{        
   var theid = $(this).attr("id");
   var onlyID = theid.split("_");
   var onlyID = onlyID[1];
   var credoff = parseInt($(this).children('input.credoff:hidden').val());

    $.ajax({            
      url: 'do.php',
      type: 'POST',          
      data: "userID=" + onlyID + "&credoff=" + credoff,
      success: function(data) {
          if(data != "success1" && data != "success5") {
               $("#" + theid).text(data);  
          }else{

              $("#thediv_" + onlyID).fadeOut("slow");
              $('#creditsBalance').fadeOut("slow");
              newbalance = parseInt($('#creditsBalance').text());

          if(data != "success5") { 
               newbalance = newbalance+credoff;
              }else{
                newbalance = newbalance+5;
              }
          alert ('hi');

              $('#creditsBalance').text(newbalance);
              $('#creditsBalance').fadeIn("slow");
              $("#" + theid).text("Done"); 
          }
      },
      beforeSend: function()
      {
            $("#" + theid).text("Working...");                  
      },
      error: function()
      {           
        $("#" + theid).text("Failed...Click to Retry");           
      }          
    });
});

Линия

if(data != "success5") { 
    newbalance = newbalance+credoff;
}else{
    newbalance = newbalance+5;
}
alert ('hi');

Обновляет мою БД, но тогда я не получаю оповещение. Достаточно ли этого кода, чтобы кто-нибудь увидел, где я не так?

Ответы [ 3 ]

1 голос
/ 30 мая 2011

Ваш сервер может добавлять новые строки или другие пробелы, которые приводят к ошибкам сравнения строк, перед выполнением таких операций обязательно обрежьте пробел:

success: function(data) {
  data = data.trim();
0 голосов
/ 30 мая 2011

Эта строка вообще не обновляет базу данных.Код php, который обновляет базу данных, уже выполнен.Вам нужно будет узнать, где достигается точка, где начинается if.Если это не так, проблема может быть в коде php (после части, где обновляется база данных) или в коде javascript, либо в указании правильного обработчика события OnSuccess для запроса AJAX, либо вфактический код в этом обработчике событий.

В этом случае вполне может оказаться, что newbalance не определен внутри обработчика событий, поэтому выполнение строки

newbalance = newbalance + whatever;

вызовет ошибку.

Самое простое, что можно попробовать: поставить alert('yoyoyo'); в начало обработчика успеха.Если вы не получили это сообщение, событие не вызывается.

Убедитесь, что вы тестировали с использованием FireBug или аналогичного инструмента, чтобы проверить, не получили ли вы какие-либо синтаксические ошибки или другие ошибки.Если вы не и не получите сообщение, обработчик события не вызывается, и проблема, вероятно, заключается в коде сервера.

0 голосов
/ 30 мая 2011

если вы хотите отправить уведомление об успехе, измените ваш фрагмент следующим образом

if(data != "success5") { 
    newbalance = newbalance+credoff;
}else{
    newbalance = newbalance+5;
    alert ('hi');
}

таким образом, если это «success5», вы получите предупреждение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...