我有这样的按钮。
<input onclick="reply_click(this.id,this.name)" target="_blank" type="submit" id="'+clickid+'" name="'+click_ip+'" value="Check">
和javascript一样。
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)
}
}
警报正常工作,但数据未发送到数据库。 如何解决这个问题?
谢谢...
答案 0 :(得分:0)
这个答案的标志是重复的声音。但在那之前,我会告诉你它为什么不起作用。
想想这段代码:
var a = 0;
function do_something() {
a = 1;
}
a = 2;
console.log(a);
do_something();
打印到控制台的是什么? 2
。仅仅因为代码碰巧在物理上高于其他代码,并不意味着它按照该顺序被调用。在这个例子中很容易辨别,但是现在让我们来看看你的代码。
...
success: function(){
success = true
}
});
if(success){
window.open('http://whatismyipaddress.com/ip/'+click_ip)
}
...
你知道,成功正在里面设置返回功能。直到稍后才会发生这种情况。但下一行if(success)
立即运行!这意味着成功尚未改变。您还需要在内部移动{/ 1}} 成功回调。那是你希望它发生的时候!
window.open