2011-11-21 72 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']; ?>"); 
    } 

希望它能幫助。

相關問題