设置Javascript变量,以便onunload函数可以对其进行检查

设置Javascript变量,以便onunload函数可以对其进行检查,javascript,jquery,onunload,Javascript,Jquery,Onunload,我有一个页面,显示进货零件,以便可以输入序列号。我有一个jQueryAjax函数,它更新数据库并隐藏输入序列号时的行id。这里没问题 我也在卸载时发送电子邮件,同样没有问题 我想做的是在我的ajax函数之后将一个变量设置为1,这样我就可以看到对股票的修改,然后在onload函数中,我可以看到该变量的状态,并决定是否发送电子邮件 我的设置序列号为: function updateField(what) { serial = document.getElementById('serialno

我有一个页面,显示进货零件,以便可以输入序列号。我有一个jQueryAjax函数,它更新数据库并隐藏输入序列号时的行id。这里没问题

我也在卸载时发送电子邮件,同样没有问题

我想做的是在我的ajax函数之后将一个变量设置为1,这样我就可以看到对股票的修改,然后在
onload
函数中,我可以看到该变量的状态,并决定是否发送电子邮件

我的设置序列号为:

function updateField(what) {
    serial = document.getElementById('serialno_' + what).value;
    po = document.getElementById('po_' + what).value;
    entry = what;
    if (serial != "") {
        $("#totalitems").load("stock_ajaxserial.php?id=" + entry + "&stock=" + serial + "&po=" + po);
        $("#tr_" + what).hide("slow");
    };
}
我的
onunload
就是:

function SendEmail()
{
    $.get("stock_in_email.php?po=<?php echo $row_rs_po['entry']; ?>&id=<?php echo $row_rs_po['Order_id']; ?>");
} 
函数sendmail() { $.get(“stock_in_email.php?po=&id=”); }
您可以使用cookies在
卸载
上设置数据,并在
加载期间读取数据
以后

您可以在代码外部设置全局变量,并在内部检查其值。IMHO不是做你需要的事情的最干净的方式,但我希望它是你想要的

var ajaxReady = 0;
function updateField(what) {
    serial = document.getElementById('serialno_' + what).value;
    po = document.getElementById('po_' + what).value;
    entry = what;
    if (serial != "") {
        $("#totalitems").load("stock_ajaxserial.php?id=" + entry + "&stock=" + serial + "&po=" + po, function() {
            ajaxReady = 1;
        });
        $("#tr_" + what).hide("slow");
    };
}
在您的
onunload
功能中:

  function SendEmail()
  {
      if (ajaxReady) // ajax must be done to send e-mail
          $.get("stock_in_email.php?po=<?php echo $row_rs_po['entry']; ?>&id=<?php echo $row_rs_po['Order_id']; ?>");
  } 
函数sendmail() { if(ajaxReady)//必须执行ajax才能发送电子邮件 $.get(“stock_in_email.php?po=&id=”); }
希望有帮助。

那么问题是什么?你应该考虑使用jQuery,它会简化你想要达到的目标。只是我注意到的一件事:为什么你把var“入口”设置为“什么”,而不是直接使用“什么”?“entry”是否被视为全局javascript变量?如果您只是在函数中使用“entry”,我强烈建议您执行“var entry=what”!这是因为javascript将搜索不带var关键字的全局变量“entry”。@Jim你能告诉我你是否能解决你的问题吗?