2013-08-08 2 views
1

내 웹 사이트에 smarty와 php를 사용하고 있습니다. 데이터를 json으로 변환하는 코드가 있습니다. 그 데이터를 현명한 템플릿으로 사용하고 싶습니다. 그 데이터는 일련의 오류 메시지이며 원하는 ID로 할당 된 멋진 템플릿에 메시지를 표시하려고합니다. 나는 똑똑한 템플렛에서 그것을 얻을 수 없다. 실제로 무슨 일이 일어나고 있는지 오류 메시지가 원하는 태그 대신 일반 페이지에 표시됩니다.멋진 템플릿에 json 데이터를 표시하는 방법은 무엇입니까?

<?php 
if($request['form_submitted']=='yes') { 
       $ret = $objPracticeSheet->InsertPracticeSheet($request, $practice_sheet_error_messages); 
       if(!$ret) { 
        $error_msg = $objPracticeSheet->GetAllErrors(); 
        $data = array(); 
        $data['error_message'] = $error_msg['error_msgs']; 
        $data = json_encode($data); 
        echo $data; 
        die; 
       } else { 
        $data = array(); 
        $data['success_message'] = "success"; 
        $data = json_encode($data); 
        echo $data; 
        die; 
       } 
      } else { 

       $all_subjects = $objSubjectsTopicsQues->GetAllSubjectsHavingTopics(); 
       $smarty->assign('all_subjects', $all_subjects); 
       $smarty->assign('sheet_type', 'practice'); 
       $bread_crumbs_text = 'Add Practice Sheet'; 
       $submit_value  = 'Submit'; 
       $cancel_value  = 'Cancel'; 
       $file_to_show  = 'manage-practice-sheet.tpl'; 
      } 
$smarty->assign("op", $op); 
    $smarty->assign("query_string", $query_string); 
    $smarty->assign("bread_crumbs_text", $bread_crumbs_text); 
    $smarty->assign("submit_value", $submit_value); 
    $smarty->assign("cancel_value", $cancel_value); 
    $smarty->assign("error_msg", $error_msg); 
    $smarty->assign("file_to_show", $file_to_show); 
    /*$smarty->assign('create', '-active'); 
    $smarty->assign("sub_menu_file", "epn-create-sub-menu.tpl"); 
    $smarty->assign('practice_sheet', '-active');*/ 
    $smarty->assign('practice_sheet', 'active'); 
    $smarty->assign('prepare', 'selected'); 
    $smarty->display("index.tpl"); 
?> 

당신이 나를 도와 드릴까요 : 내 PHP 코드 이제 다음

if $error_msg}<div class="error-info">{$error_msg.error_msgs}</div>{/if} 

한다 : 나는 오류 메시지를 표시 할 유식 코드에 따라 : 다음은 내 유식과 PHP 코드 위의 div에 오류 메시지 json 데이터를 표시 하시겠습니까? 미리 감사드립니다. 또한 현재 출력의 스크린 샷을 첨부하고 있습니다. enter image description here

답변

0

자바 스크립트를 사용하여 JSON을 구문 분석 한 다음 div에 오류를 넣습니다.

$smarty->assign("error_msg", $error_msg->error_message); 
: 그냥 PHP에서 메시지 자체를 전달할 수, 또는 그런

<div id="error-info-main" class="error-info"></div> 

<script> 
{literal} 
(function() { 
    var error_json = {/literal}{$error_msg.error_msgs}{literal}; 
    var errors = JSON.parse(error_json); 
    document.getElementById('error-info-main').innerHTML = errors.error_message; 
}()); 
{/literal} 
</script> 

:

은의 당신 DIV id을 줄 수 있도록이 쉽게 만들려면

테스트 할 데이터가 없으므로 100 % 정확하지 않을 수 있습니다.하지만 그 값은 r이라고 생각합니다. ight. 어떤 생각 으로든 아이디어를 얻을 수 있습니다.

관련 문제