2017-05-05 8 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

당신은 그것을 가지고 의미 [서버 측 언어]는 PHP 코드를 (https://en.wikipedia.org/wiki/Server-side_scripting) 주입하기 위해 노력하고있다 서버에서 실행됩니다. PHP 코드는 클라이언트 측 언어 인 자바 스크립트에 삽입 할 수 없으며 실행할 수 있습니다. 내가하는 일과 관련이 있는지는 확실치 않지만 그 내용을 내가 부르고 싶습니다. – aug

+0

'PHP는 echo json_encode ($ inbox)?> ";' –

+0

코드는 PHP 문서에 있습니다. PHP를 사용하여 데이터베이스의 데이터를 가져 와서받은 편지함이라는 배열에 저장합니다. – tropic

답변

0

당신은 따옴표 사이에 문자열 var messages = "<?php echo $inbox ?>";로 메시지를 채우기하고, 로직은 2 차원 배열을 기대하고, 그래서 변수 $inbox는 예를 들어, 배열의 자바 스크립트의 배열로 텍스트를 반환해야 :

PHP :

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

자바 스크립트 (직선, 따옴표 없음) :

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

덕분에 내 문제는 따옴표를 사용하고 json_encode를 사용하지 않는 것 같았습니다. – tropic