2012-05-22 2 views
0

이봐, 난 루프를 시도 메신저와 작동하지 않는 출력하지만를 표시하려면로 json_encode을 가지고, 내가 얻을에는 출력하지 않습니다 =/루핑 데이터를 json_encoded

이 내 JS 바이올린입니다 : http://jsfiddle.net/Z4jTc/1/

수있는 일 그것이 왜 반복되지 않는지 설명해주십시오.

코드 :

var messages = {"1":["2","1","0000-00-00 00:00:00","testing once"],"2":["2","1","0000-00-00 00:00:00","testing twice :)"]}; 

    for(var id in messages){ 

      var read = messages[id][0]; 
      var from = messages[id][1]; 
      var sent_on = messages[id][2]; 
      var content = messages[id][3]; 

      document.write = 'test'; 
      document.write = '<div class="message_info">'; 
      document.write = '<b>From:</b> '+from+'<br/><br/>'; 
      document.write = '<b>Sent On:</b> '+sent_on; 
      document.write = '</div><div class="message_content">'; 
      document.write = content; 
      document.write = '</div> <br/><br/>'; 

    }​ 
+0

: 개체를 구문 분석 한 후 하나의 호출을 할 수 질문을 분석합니다. 잘 했어! –

답변

1

이렇게 많은 document.write를의의를 참조

document.write('test'); 

대신

document.write = 'test'; 

사용

입니다.

var messages = {"1":["2","1","0000-00-00 00:00:00","testing once"],"2":["2","1","0000-00-00 00:00:00","testing twice :)"]}; 
var output = []; 
for(var id in messages){ 

    var read = messages[id][0]; 
    var from = messages[id][1]; 
    var sent_on = messages[id][2]; 
    var content = messages[id][3]; 

    output.push('test'); 
    output.push('<div class="message_info">'); 
    output.push('<b>From:</b> '+from+'<br/><br/>'); 
    output.push('<b>Sent On:</b> '+sent_on); 
    output.push('</div><div class="message_content">'); 
    output.push(content); 
    output.push('</div> <br/><br/>'); 
}​ 

document.write(output.join('')); 

... 또는 페이지의 용기에 출력을 놓습니다 jsfiddle을 갖는 것은 너무 훨씬 쉽게 ...

document.getElementById('destinationContainer').innerHTML(ouput.join('')); 
+0

이 오류가 발생합니다. 할당에서 왼쪽이 유효하지 않습니다. – Sir

+0

오류가 발생한 행은 무엇입니까? –

+1

oops ... Jquery를 너무 많이 사용하고 있습니다. 행은 다음과 같아야합니다. document.getElementById ("destinationContainer"). innerHTML = output.join (""); 다음은 바이올린입니다. http://jsfiddle.net/GoofyDawg/6N89H/ –

3

당신은 지속적으로 document.write 기능을 덮어 쓰는, 당신은 결코 실제로 그것을 호출하지 않습니다.

document.write("test"); 

어떻게 사용 되나요?

+0

""이어야합니까, 아니면 작은 따옴표를 사용할 수 있습니까? 또한 내가 한 번 이상 문서를 쓸 수 없다는 의미로 모든 문서를 한 번에 써야합니까? – Sir

+0

작은 따옴표를 사용할 수 있습니다. 중요한 것은'= '대신 괄호를 사용하는 것입니다. –

+0

@Dave 어떤 따옴표라도 좋습니다. 여러 번 호출 할 수 있습니다. http://jsfiddle.net/Z4jTc/2/를 참조하십시오. 그러나 문서로드가 완료된 후 다시 호출하면 문서 내용이 완전히 대체됩니다. 디버깅을 제외하고는 실제로'document.write'를 사용하지 않습니다. –