2012-08-23 66 views
0

我想返回從xml文件中檢索到的一些數據,然後將其返回給視圖頁面。從動作返回xml數據 - CakePHP

xml文件將在用戶啓動的特定操作期間更新,然後我彈出一個對話框並顯示xml文件的內容。此操作期間將更新xml文件。

在我看來,我想顯示從讀取XML文件的PHP操作返回的數據。

這是我的動作來獲取更新的XML文件。這將每秒調用一次以更新視圖。

public function getUpdate() 
    { 
     $myFile = '/srv/www/xml-status/update_status.xml'; 
     $file = fopen($myFile, 'r'); 
     $data = file_get_contents($myFile); 
     //debug($data); 
     //print_r($data); 

     //echo json_encode($data); 
     //echo $data; 
     return json_encode($data); 
    } 

的XML文件的內容被檢索並存儲到$data變量,但我不斷收到500內部服務器錯誤。我嘗試了一堆不同的東西,但我不知道如何正確地返回數據。

這是我的視圖代碼來顯示信息。

<script> 
window.onload = timedRefresh(1000); 

// Get the updated xml file every second 
function timedRefresh(timeoutPeriod) 
{ 
    // Do a get request to get the updated contents of the xml file 
    $.get('/tools/getUpdate', function(data) 
    { 
     alert(data); 
    }); 

    window.setTimeout('timeRefreshed(1000)', 1000); 
} 
</script> 

<?php 
if(false != $xml = simplexml_load_file($xmlFile)) 
{ 
    foreach ($xml->LogEvent->sequence as $temp) 
    { 
     echo 'Step: ', $temp['step'], ' ', 'Step Name: ', $temp['stepName'], ' ', 'd1: ', $temp['d1'], ' ', 
     'd2: ', $temp['d2'], ' ', 'd3: ', $temp['d3'], ' ', 'Status: ', $temp['status'],'<br>'; 
    } 
} 
else 
{ 
    echo '<br>Error: Update status can\'t be displayed<br>'; 
} 
?> 

我搞不​​清楚我做錯了什麼。如果我可以將數據變量返回到get請求,我可以解析並顯示信息,但是我無法從php獲取數據到javascript獲取請求。 任何幫助將是偉大的。

感謝

回答

1

我覺得你的行動將是這樣的:

public function getUpdate() 
{ 
    $myFile = '/srv/www/xml-status/update_status.xml'; 
    $file = fopen($myFile, 'r'); 
    $data = file_get_contents($myFile); 
    //debug($data); 
    //print_r($data); 

    echo json_encode($data); 
    exit; 
} 

OR

public function getUpdate() 
{ 
    $this->autoRender = false; 
    $myFile = '/srv/www/xml-status/update_status.xml'; 
    $file = fopen($myFile, 'r'); 
    $data = file_get_contents($myFile); 
    //debug($data); 
    //print_r($data); 

    echo json_encode($data); 

} 
+0

它的工作,我想我是缺少退出呼叫。謝謝! – RXC

+0

@RXC:請檢查我的更新答案。 – chetanspeed511987

+0

感謝您的更新答案。我會嘗試那個。 – RXC