2013-11-04 38 views
0

在我的html中,我想調用一個php腳本(調用python腳本並檢查我的nas是否處於在線或離線狀態 - 此工作正常)並返回給我「在線」或「離線」。根據結果​​,我的在線/離線指示器的課程(「標籤標籤成功」到「標籤標籤危險」)和文本(「在線」到「離線」)應該改變。 我如何做到這一點?由於php的結果,在html中更改類和文本

HTML

<span class="label label-success">Online</span> 

PHP

<?php 
    $result = popen("pingnas.py", "r"); 
    return $result; 
?> 
+0

設置使用javascript.In您跨度的內容,你的$結果將決定什麼應該是你content.Use removeclass並添加返回1成功,0 。類()。 – roshan

回答

0

可以使一個AJAX調用PHP腳本依次調用的Python腳本檢查用戶是否是在線還是離線。

就是這樣。

-In your Javascript, make an AJAX call to PHP script. 
-PHP in turn executes python to see if the user is online or offline. 
-Send the JSON response. May be something like {"status":"online"} 
-Based on the JSON response, change the HTML of the span element. 
+0

好的,我知道如何編碼1-3,但我如何根據結果更改span元素的html? – user2877744

+0

如果AJAX請求成功,則返回 var response = JSON.parse(xhr.responseText); document.getElementById(「indicator」)。innerHTML = response.status; – Ramesh

0

添加ID到要操縱

<span class="label label-success" id="indicator">Online</span> 

返回結果變量JavaScript,然後操縱使用javascript文本/類名的跨度。假設Python腳本失敗

<?php $result = popen("pingnas.py", "r"); ?>

<html> 
<head> 
<script type='text/javascript'> var status='<?php echo $result ?>'; 
window.onload=function(){ 
var ind=getElementById('indicator'); 
if(status*1){ind.innerHTML='Online';ind.className='label label-success';} 
else {ind.innerHTML='Offline';ind.className='label label-fail';} 
} 
</script> 

...rest of the html 
+0

當我使用此代碼時,沒有任何反應。爲了測試代碼,我做了<?php $ result = 0; ?>但沒有發生。 – user2877744

+0

元素的ID是否設置正確?嘗試console.log(ind); – Shamps

+0

Firebug向我顯示一個錯誤,所以我做「var ind = document.getElementById」,錯誤消失了。我不確定的一件事是你寫了「if(status * 1)」不應該是「if(status == 1)」?無論如何,它們都不適合我。 – user2877744

相關問題