JQuery Ajax POST не работает в функции [дубликат]

” мен¤ така¤ кнопка.

function reply_click(clicked_id,click_ip)
{
    var data        = 'sendCID=' + clicked_id;
    alert(data);
    $.ajax({
                type: 'POST',
                url: 'send_data.php',
                data: data, 
                async:false,
                success: function(){
                success = true
                }
            });
    if(success){
      window.open('http://whatismyipaddress.com/ip/'+click_ip)
    }
}

» javascript вот так.

var a = 0;
function do_something() {
   a = 1;
}
a = 2;
console.log(a);
do_something();

¬ Alert работает правильно, но данные не отправл¤ютс¤ в базу данных.  ак это исправить?

—пасибо...

javascript,jquery,ajax,javascript,

-1

Ответов: 1


0 прин¤т

‘лаг этого ответа как дубликат звучит. Ќо до тех пор ¤ расскажу вам, почему это не работает.

ѕодумайте об этом коде:

2

„то напечатано на консоли? 2, ѕросто потому, что код происходит физически выше какого-либо другого кода, не означает, что он вызываетс¤ в этом пор¤дке. ¬ этом примере легко сказать, но теперь давайте посмотрим на ваш код.

...
            success: function(){
                success = true
                }
            });
    if(success){
      window.open('http://whatismyipaddress.com/ip/'+click_ip)
    }
...

¬ы видите, успех создаетс¤ внутри функции возврата. Ёто происходит не позже, чем позже. Ќо следующа¤ строка начинаетс¤ if(success)сразу же! Ёто означает, что успех еще не изменилс¤. ¬ам также нужно перемещатьс¤ window.open внутри обратного вызова. ¬от когда вы этого хотите!

success: function(){
     window.open('http://whatismyipaddress.com/ip/'+click_ip)
});
JavaScript, JQuery, Ajax, JavaScript,
Похожие вопросы