首页 > 解决方案 > 如何使用换行符显示从 oracle 数据库中获取的 JSON 输出

问题描述

我有一个 HTML 页面,它有一个用户输入和一个按钮。单击按钮后,我们可以从 oracle 数据库中获取与该用户相关的其他数据。我已经在一个单独的 php 页面( index2.php )中定义了我的代码,如下所示:-

<?php
class logAgent
{
    const CONFIG_FILENAME = "data_config.ini";

    private $_dbConn;
    private $_config;


    function __construct()
    {
        $this->_loadConfig();


        $this->_dbConn = oci_connect($this->_config['db_usrnm'],
            $this->_config['db_pwd'],
            $this->_config['hostnm_sid']);
    }
    private function _loadConfig()
    {
        // Loads config
        $path = dirname(__FILE__) . '/' . self::CONFIG_FILENAME;
        $this->_config = parse_ini_file($path) ;
    }
    public function fetchLogs() {
        $userid =$_POST["userid"];
        $sql = "SELECT REQUEST_TIME,WORKFLOW_NAME,EVENT_MESSAGE
                            FROM AUTH_LOGS WHERE USERID = '".$userid."'";
        //Preparing an Oracle statement for execution
        $statement = oci_parse($this->_dbConn, $sql);

        //Executing statement
        oci_execute($statement);
        $json_array = array(); 

        while (($row = oci_fetch_row($statement)) != false) {
            $rows[] = $row;
            $json_array[] = $row; 
        }
            echo json_encode($json_array);
    }

}
    $logAgent = new logAgent();
    $logAgent->fetchLogs();
?>

我正在使用异步发布方法执行此操作,我定义了一个 javascript 文件(script.js)

$(document).ready(function(){
    $("#mybtn").click(function(e){
        e.preventDefault();
		var userid = $("#userid").val();
		
        //$.post("index2.php", {"userid" : userid})
		
		var posting = $.post( 'index2.php', {"userid" : userid});	
		posting.done(function( res ) {	
			
			var response = $.parseJSON(res);
			$('#rawResponse').text(response);	
		});	

    });
})

我有一个用户的许多数据。输出显示如下:03-SEP-18,softOtpCheck,OTP 检查通过,03-SEP-18,createAuthenticatedSession,yoya session Created.,03-SEP-18,createAuthenticatedSession,yoya session Created.,03-SEP-18, oamAuth,OAM 上下文 cookie 收集。,03-SEP-18,softOtpCheck,OTP 检查通过,03-SEP-18,createAuthenticatedSession,yoya session Created.,03-SEP-18,createAuthenticatedSession,yoya session Created.,03-SEP- 18、oamAuth、OAM上下文cookie收集。

但我希望它为:

03-SEP-18,softOtpCheck,OTP检查通过,

03-SEP-18,createAuthenticatedSession,yoya 会话创建。,

03-SEP-18,createAuthenticatedSession,yoya 会话创建。,

03-SEP-18,oamAuth,OAM 上下文 cookie 收集。,

03-SEP-18,softOtpCheck,OTP检查通过,

03-SEP-18,createAuthenticatedSession,yoya 会话创建。,

03-SEP-18,createAuthenticatedSession,yoya 会话创建。,

03-SEP-18,oamAuth,OAM 上下文 cookie 收集。

如何在换行符中显示我的输出?

标签: phpjquerynewline

解决方案


如果要回显 json 数据,可以使用 JSON_PRETTY_PRINT 返回带有换行符的美化数据

echo json_encode($json_array, JSON_PRETTY_PRINT);

推荐阅读