2011-11-21 30 views
0

我有一个显示传入库存零件的页面,以便可以输入序列号。我有一个JQuery Ajax函数,它可以更新数据库并隐藏输入序列号的行ID。这里没有问题。设置一个Javascript变量,以便可以通过onunload函数进行检查

我也发送一封电子邮件卸载,再次没有问题。

我想要做的就是在我的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']; ?>"); 
} 
+0

那么问题是什么?你应该考虑使用jQuery,它会简化你想要实现的东西。 – melaos

+1

只是我注意到的一件小事:为什么你将var“entry”设置为“what”而不是直接使用“what”? “入门”被认为是一个全球性的JavaScript变量?如果你只是在你的函数中使用“entry”,我强烈建议做“var entry = what”!这是因为javascript会搜索没有var关键字的全局变量“entry”。 – Grrbrr404

+0

@Jim你能告诉我你是否能解决你的问题? –

回答

0

,你可以使用Cookie在onload后来

设置在 unload数据和读取数据
0

你可以在你的代码之外设置一个全局变量并检查它的值。恕我直言并不是做你需要的最干净的方式,但我希望它是你想要的。

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']; ?>"); 
    } 

希望它能帮助。

相关问题