2017-05-05 15 views
0

最初にページを読み込んだりボタンをクリックしたときにメッセージが表示されるが、何も表示されない受信トレイを作成しようとしています。私は何を間違えたのですか?appendChildは動作しませんか?

var inbox = document.getElementsByClassName("inbox").item(0); 
 
var inbox_button = document.getElementById("messages"); 
 
inbox_button.addEventListener("click", showMessages); 
 
showMessages(); 
 

 
function showMessages() { 
 
    var messages = "<?php echo $inbox ?>"; 
 
    var inbox_table = document.createElement("table"); 
 
    var inbox_content = 
 
    "<tr>" + 
 
    "<th>From</th>" + 
 
    "<th>Subject</th>" + 
 
    "<th>Date</th>" + 
 
    "</tr>"; 
 
    for (i = 0; i < messages.length; i++) { 
 
    inbox_content = inbox_content + 
 
     "<tr>" + 
 
     "<td>" + messages[i][1] + "</td>" + 
 
     "<td>" + messages[i][2] + "</td>" + 
 
     "<td>" + messages[i][5] + "</td>" + 
 
     "</tr>"; 
 
    } 
 
    inbox_table.innerHTML = inbox_content; 
 
    inbox.appendChild(inbox_table); 
 
}
<div class="inbox"> 
 
    <button id="messages" type="button">Inbox</button> 
 
    <button id="new_message" type="button">New Message</button> 
 
</div>

+0

あなたはそれを持っていることを意味する(https://en.wikipedia.org/wiki/Server-side_scripting)[サーバー側の言語]でPHPコードを挿入しようとしていませんサーバー上で実行されます。クライアント側の言語であるJavaScriptでPHPコードを挿入することはできません。 これはあなたがしようとしていることに関連しているかどうかはわかりませんが、それは私が呼びたいものです。 – aug

+0

'var messages =" <?php echo json_encode($ inbox)?> ";' –

+0

コードはPHPドキュメントにあります。データベースからデータを取得し、受信トレイと呼ばれる配列に保存します。 – tropic

答えて

0

あなたは引用符の間に、文字列var messages = "<?php echo $inbox ?>";としてメッセージを移入され、そして、あなたのロジックは、2次元配列を想定し、その変数$inboxは、例えば、配列のJavascriptのの配列としてテキストを返す必要があります:

PHP:

$inbox = '[["Text-1-1", "Text-1-2", "Text-1-3"], ["Text-2-1", "Text-2-2", "Text-2-3"]]'; 

のJavascript (ストレート、なしの引用符):

var messages = <?php echo $inbox ?>; 
+0

私の問題は、引用符を使用し、json_encodeを使用しないという組み合わせになっているようです – tropic

関連する問題