2012-09-04 2 views
3

약간의 문제가있어서 도움이 필요합니다. 나는 Joomla 모듈로 코딩하고 있지만, 이것은 Joomla와 친숙하지 않은 모든 사람들에게 실제로 문제가되지는 않습니다.JSON을 어떻게 해결해야합니까?

줌라의 모듈에는 tmpl (간단히 생각하면 template)이라는 폴더가 있는데 여기에는 작은 파일 default.php이 있는데, 여기에는 브라우저에보기가 표시됩니다. 여기에 대략 내가 문자열로 위의 자바 스크립트의 obj 변수에 피드백 될 모든 적분 식별자 $val 내부를 얻을하고자하는 foreach 루프에서

!DOCTYPE HTML 
<?php 
// perform some initialization 
?> 

<script language="javascript"> 
$(document).ready(function() 
{ 
    var obj=["o1","o2","o3","o4",...,"o_n"]; 
    //do something with range obj 
}); 

</script> 

<div> 
    <div class="content"> 
     <?php 
      if(is_set($array)) 
      { 
       foreach($array as $key=>$val): 
      ?> 
       //GET $val->id 
      <?php 
       //display $val->$content 
      } 
     ?> 
    </div> 
</div> 

으로 파일 내가 처리하고의 일부입니다. 나는 이것을 자동적으로 수행 할 필요가있다. 페이지가로드 될 때 자바 스크립트의 obj이 초기화되고 새로운 $val 항목을 데이터베이스에 추가하면이 작업도 자동으로 수행되어야합니다 (이 기본 페이지를 열어 obj을 편집 할 필요가 없음).

내가 지금 당면하고있는 문제를 이해하고 있습니까? 질문하고 답장하십시오. 고마워요

답변

0

하나의 솔루션은 PHP에서 JS로 전달하려는 배열을 작성한 다음 json_encode이고 JS를 그대로 그대로 전달하는 것입니다. JS에서 빌드 한 다음 JS 코드를 통해 확장하는 것보다 쉬울 것입니다.

!DOCTYPE HTML 
<?php 
// perform some initialization 
?> 

<?php 
$obj = array("o1","o2","o3","o4",...,"o_n"); 
if(is_set($array)) { 
    foreach($array as $key=>$val) { 
     $obj[] = $val->id; 
    } 
} 
?> 

<script language="javascript"> 
$(document).ready(function() 
{ 
    var obj=<?php echo json_encode($obj); ?>; 
    //do something with range obj 
}); 

</script> 

또 다른 방법은 AJAX는이 배열을 채우기 위해 호출하지만 항상 최선의 방법이 아니다 사용하는 것입니다, 그래서 결정하게합니다 있습니다 : 예를 들어이를 참조하십시오.

+0

Jadkik, 매우 유망 해 보입니다. 당신이 제안한 것을 시도해 볼 것입니다. jason 메서드를 먼저 사용하고, 시간이 있다면 jQuery 메서드를 다시 사용하십시오. –

0

페이지를 렌더링 할 때 자바 스크립트를 문자열로 출력합니다. 따라서 페이지가로드 될 때 (이미 배열 객체를 만든 후에) JS로 excecute합니다.

희망이 있습니다.

관련 문제