У меня есть 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, файл cookie контекста OAM собран., 03-SEP-18, softOtpCheck, проверка OTP пройдена, 03-SEP-18, createAuthenticatedSession, сеанс yoya создан., 03-SEP-18, createAuthenticatedSession, сеанс yoya создан., 03-SEP- 18, oamAuth, файл cookie контекста OAM собран.

Но я хочу это как:

03-СЕН-18, softOtpCheck, проверка OTP пройдена,

03-СЕН-18, создать сеанс аутентификации, сеанс йоги создан.,

03-СЕН-18, создать сеанс аутентификации, сеанс йоги создан.,

03-СЕН-18, oamAuth, файл cookie контекста OAM собран.,

03-СЕН-18, softOtpCheck, проверка OTP пройдена,

03-СЕН-18, создать сеанс аутентификации, сеанс йоги создан.,

03-СЕН-18, создать сеанс аутентификации, сеанс йоги создан.,

03-СЕН-18, oamAuth, файл cookie контекста OAM собран.

Как я могу отобразить свой вывод в новой строке?

0
ssnone 14 Сен 2018 в 13:26

2 ответа

Лучший ответ

Я верю, ты хочешь измениться

$('#rawResponse').text(response);

Кому

$('#rawResponse').html('<pre>' + JSON.stringify(response, null, 2) + '</pre>);

См. JSON.stringify и заключенные в теги pre будут красиво отображать возвращаемое значение. В качестве альтернативы вы также можете поместить его в textarea, он также будет правильно отображать новые строки.

0
seasick 14 Сен 2018 в 13:22

Если вы хотите отобразить данные json, вы можете вернуть предварительно настроенные данные с символами новой строки, используя JSON_PRETTY_PRINT

echo json_encode($json_array, JSON_PRETTY_PRINT);
0
Hesham AbuSaif 14 Сен 2018 в 13:11