0

ユーザーがキャンバスに図形を描画し、それらをデータベースに保存して取得するアプリケーションを作成しています。保存部分は正常に機能しますが、このXMLコンテンツを読み込もうとすると、問題が発生し始めます。

まず、ユーザーが作成したドキュメントのリストを持っています。クリックすると、そのドキュメントがアプリケーションに読み込まれ、これが実行されます。次のコードを使用します。最初に、ドキュメントのIDを取得するjavascript関数を使用して、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はデータベースにクエリを実行し、ドキュメントの名前と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のsuccess:{}で問題なくアラートボックスに表示されます。これで、ユーザーは次のように開始する実際のアプリケーションに移動します。

<?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>

最初の2つの項目を取得すると、問題はありません。XMLデータがプリンターになるとすぐに、それらは実際の問題になります。loadDiagram()XMLができる理由がわかりalert ()ませんが、アプリケーションページができません。データが何らかの理由で破損していますか?

フィードバックをありがとうございます。

4

1 に答える 1

2

問題の原因となっている文字列に引用符が含まれている可能性があります。試す

alert(<?php echo json_encode($document_Data) ?>);
于 2012-05-08T23:10:18.180 に答える