2017-05-05 6 views
0

Ich versuche einen Posteingang zu erstellen, der Nachrichten anzeigt, wenn Sie die Seite zum ersten Mal laden oder auf eine Schaltfläche klicken, aber nichts wird angezeigt. Was habe ich falsch gemacht?appendChild wird nicht funktionieren?

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

Sie versuchen, PHP-Code zu injizieren, die eine [serverseitige Sprache] (https://en.wikipedia.org/wiki/Server-side_scripting), das heißt, es hat auf dem Server ausgeführt werden. Sie können PHP-Code nicht in JavaScript, einer clientseitigen Sprache, einfügen und erwarten, dass er ausgeführt wird. Nicht sicher, ob das für das, was Sie versuchen, relevant ist, aber das ist etwas, was ich rufen wollte. – aug

+0

'var messages =" ";' –

+0

der code ist in einem php-dokument, ich benutze php um daten aus meiner datenbank zu holen und in einem array namens inbox – tropic

Antwort

0

Sie bevöl Nachrichten als String var messages = "<?php echo $inbox ?>";, zwischen Anführungszeichen und Ihre Logik erwartet einen 2-dimensionalen Array, so dass die Variable $inbox sollte Text als Array von Arrays Script zurückkehren, zum Beispiel :

PHP:

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

Javascript (Gerade, ohne Anführungszeichen):

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

danke es scheint, dass mein Problem eine Kombination von Anführungszeichen und nicht mit json_encode war – tropic