1

我在我的网站上使用 smarty 和 php。有一些代码可以将数据转换为 json。我想在 smarty 模板中使用该数据。该数据是一组错误消息,我想在指定的 smarty 模板中以所需的 ID 显示这些消息。我无法在 smarty 模板中得到它。实际上发生的事情是错误消息显示在普通页面上,而不是显示在所需的标签中。以下是我的 smarty 和 PHP 代码: 以下是我要显示错误消息的 smarty 代码:

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

现在以下是我的 PHP 代码:

<?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");
?>

您能帮我在上面的 div 中显示错误消息 json 数据吗?提前致谢。我还附上了当前输出的屏幕截图。在此处输入图像描述

4

1 回答 1

0

使用 JavaScript 解析 JSON,然后将错误放在 div 中。

为了让这更容易,让我们给你的 div 一个id

<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>

或者,您可以只从 PHP 传递消息本身:

$smarty->assign("error_msg", $error_msg->error_message);

这可能不是 100% 正确,因为我没有要测试的数据,但我相信这是正确的。无论如何,你都会明白这一点。

于 2013-08-08T16:54:52.180 回答