[英]Trigger jquery script from PHP
我正在嘗試執行以下操作:
1:加載XML文件(帶有靜態名稱的列表設備,以及變化的值和注釋)-這可以工作
2:將XML(t = 0)加載到變量中,以便在HTML中輕松使用-這可行
3:再次加載XML(t = 200ms)-這有效(我認為)
4:檢查兩個XML之間是否有任何值更改
5:如果為TRUE,則更新一個或多個<DIV id=>
任務1:我猜我需要在每次完成時說一次loadxml腳本,或者說每200毫秒說一次。任務2:我需要編寫並調用一個可以更新<DIV id=>
的腳本。
為了使您易於理解,我僅用兩個參數編寫了代碼,並在需要添加一些注釋的地方添加了注釋。
如果這是一個瘋狂的整體架構,請給我一個方向。
<?php
loadxml() ;
function loadxml() {
$feed_url = "demoxml.xml";
$xml = file_get_contents($feed_url);
$array = json_decode(json_encode((array)simplexml_load_string($xml)),1);
for ($id=1; $id<=157; $id++) {
//dynamic
$generation='new';
$hs3device_note[$id][$generation]= $array['device'][$id]['@attributes']['note'] ;
if ($hs3device_note[$id]['current'] != $hs3device_note[$id]['new']) { ;
$hs3device_note[$id]['current'] = $hs3device_note[$id]['new'] ;
//CALL SCRIPT (like ReplaceContentInContainer) TO UPDATE <DIV id = $id> WITH CONTENT $hs3device_note[$id]['new'])
} ;
$hs3device_value[$id][$generation]= $array['device'][$id]['@attributes']['value'] ;
if ($hs3device_value[$id]['current'] != $hs3device_value[$id]['new']) { ;
$hs3device_value[$id]['current'] = $hs3device_value[$id]['new'] ;
//CALL SCRIPT (like ReplaceContentInContainer) TO UPDATE <DIV id = $id> WITH CONTENT $hs3device_note[$id]['new'])
} ;
}
//MAKE loadxml() call it self or restart in 200 ms
} ;
<script type='text/javascript' src='jquery-1.7.2.js'>
function ReplaceContentInContainer() {
var container = document.getElementById(id);
container.innerHTML = content;
}
</script>
<DIV id="hs3device_note[34]['current']">...</DIV>
<DIV id="hs3device_value[34]['current']">...</DIV>
AJAX或異步JavaScript和XML是一種從JavaScript異步向服務器發送請求的方法(因此而得名),如果您提出這樣的問題,則意味着您可以(以指定的時間間隔)向服務器發送請求以查看是否有一些數據更改,並且如果PHP腳本評估為true(即具有),則將其發送回HTML頁面以替換正在顯示的現有數據。
function myXMLRequest() {
var request = $.ajax({
url: "script.php",
type: "POST",
data: { action:'testmyxml' },
dataType: "html"
});
request.done(function( msg ) {
setTimeout(function() {
myXMLRequest();
}, 5000);
if(msg != "") {
$( "#mydiv" ).html( msg );
}
});
request.fail(function( jqXHR, textStatus ) {
alert( "Request failed: " + textStatus );
});
}
$(document).ready(function() {
myXMLRequest();
});
參考:JQuery API文檔。
script.php
是執行所有邏輯的php腳本,使用PHP的'echo'命令將數據發送回去,如果不做任何回聲...(您可以測試msg
是否為空客戶端)。 msg
將在script.php
PHP已回顯的所有信息,並且可以將其放入div中,如我的示例所示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.