我在我的网站上使用smarty和php。有一些代码将数据转换为json。我想在智能模板中使用该数据。该数据是一组错误消息,我想在指定的智能模板中以所需的ID显示这些消息。我无法在聪明的模板中得到它。实际上正在发生的是错误消息显示在普通页面而不是所需的标签中。 以下是我的聪明和PHP代码: 以下是我想显示错误消息的智能代码:
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数据吗?提前致谢。我还附上当前输出的屏幕截图。
答案 0 :(得分: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%正确,因为我没有您要测试的数据,但我认为这是正确的。无论如何,你都能得到这个想法。