2014-07-17 80 views
0

我正在編寫一個用於控制使用某些屏幕按鈕的串行端口的php頁面。當我按下按鈕時,它會通過串口發送一些數據,並顯示它的響應。所有這些都工作正常。如何通過成功者來維護PHP對象AJAX調用

現在,我需要不斷地聽串口爲了接收我沒有要求的數據。我試圖用javascript中的定時器來完成它,但是每次我通過AJAX執行PHP代碼時,串行端口都會重新啓動並刷新其緩衝區。在完成PHP代碼的執行之前,我需要將控制串口的對象傳遞給javascript代碼。當按下按鈕時,我需要將這個對象傳遞給新的PHP代碼。

我該怎麼做?

非常感謝

+0

我忘了說我需要通過引用傳遞對象才能訪問串口而不刷新緩衝區。 – Joxean943

回答

0

我發現,這是IMPOSIBLE做:當PHP代碼完成其執行,串行端口自動關閉,所以我失去了接受,直到所有的數據我再次打開端口。

0

退房:http://php.net/manual/en/language.oop5.serialization.php 您應該通過序列化對象,或者保持串行對象活動的會話之間,其存儲在一個文本文件中。在AJAX末尾,將其存儲爲Global [WINDOW] variable。如

window.serialphpobject = data; 

然後在下AJAX調用使用該數據

{object: window.serialphpobject} 

所有例如很明顯,沒有看到你的代碼,我不能準確地適應它。

0

首先在代碼中創建一個全局js變量。 當你第一次進行ajax調用,然後將響應存儲在你的js變量中。

所以每次你需要通過ajax傳遞這個全局js變量。

您可以用

window.myVariable=""; 

一定要定義這個變量窗口級別的js全局變量發送任何JS要求

0

我需要通過控制串行端口的對象之前在完成PHP代碼的執行之前的JavaScript代碼。當按下按鈕時,我需要將這個對象傳遞給新的PHP代碼。

此解決方案將容易受到攻擊。您應該將這些信息保存在PHP會話中。

http://php.net/manual/en/session.examples.basic.php