2012-05-08 24 views
0

我正在創建一個應用程序,用戶在畫布上繪製形狀,然後從數據庫中保存並檢索它們。保存部分工作正常,但現在儘管我試圖加載這個XML內容,那是麻煩開始的地方。PHP似乎不能很好地使用XML字符串進行播放?

首先,用戶有一個他們已經創建的文檔列表,當點擊它時,它會將該文檔加載到應用程序中,我使用以下代碼,首先是一個JavaScript函數,它接收文檔的ID,然後發送它到一個PHP腳本,它從數據庫中檢索文檔數據。 PHP腳本比加載文件數據變爲$_SESSION['data']變量。完成後,它返回到將用戶重定向到應用程序頁面的JavaScript函數。

function loadDocument(docID){ 
    $.ajax({ 
     url: "load_a_document.php", 
     type: "POST",  
     data: { 
      documentID: docID, 
     }, 
     success: function(data) 
     { 
      alert(data); //THIS DISPLAYS THE XML WITH NO PROBLEMS??? 
      window.location = "application.php"; 
     }  
    }); 
}; 

的PHP查詢數據庫,並retreives文件的名稱和XML內容,它就會做到這一點:

$_SESSION['document_Name'] = $doc_NAME; 
$_SESSION['document_XML'] = $doc_DATA; 

echo($_SESSION['document_XML']); //this is 'data' on the ajax success call 

現在,當PHP完成它呼應了PHP的背景下,這顯示了在成功提示框中:{}的AJAX沒有問題。現在只需要用戶的實際應用程序,它開始像這樣:

<?php 
session_start(); 

$document_Name = $_SESSION['document_Name']; 
$document_Data = $_SESSION['document_XML']; 
?> 
<script> 
    alert(" <?php echo $document_Name; ?> "); //WORKS FINE 
    alert(" <?php echo $_SESSION['document_Name']; ?> ") //WORKS FINE 

    //alert(" <?php echo $document_Data; ?> "); //STOPS THE PAGE LOADING 
    //alert(" <?php echo $_SESSION['document_XML']; ?> ") //STOPS THE PAGE LOADING 
</script> 

抓取前兩個項目,不存在任何問題,只要XML數據是打印機那麼他們是一個真正的問題。我不明白爲什麼loadDiagram()可以alert () XML但我的應用程序頁面不能。數據是否已被破壞?

感謝您的任何反饋意見。

回答

2

您可能在導致問題的字符串中有引號。嘗試

alert(<?php echo json_encode($document_Data) ?>); 
+1

+1總是檢查您的*生成的JavaScript源代碼*是否有效和/或有意義。 – deceze

相關問題