簡體   English   中英

從PHP觸發jquery腳本

[英]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文檔。

http://api.jquery.com/jquery.ajax/

script.php是執行所有邏輯的php腳本,使用PHP的'echo'命令將數據發送回去,如果不做任何回聲...(您可以測試msg是否為空客戶端)。 msg將在script.php PHP已回顯的所有信息,並且可以將其放入div中,如我的示例所示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM