<br/>不处理来自mysql查询的文本

时间:2017-07-11 18:40:59

标签: javascript html mysql json

我正在开发A.I正在推送MySQL数据库上的文本的项目。然后,我们想要在网页上显示正在进行的写作。我们还在努力。

我们正在获取数据并定期检查数据库是否有新条目。问题是,我们希望将每个文本与空格分开并尝试使用<br/><p>,但它不起作用,它似乎只是&#34;只是&#34;文字并显示如下。

我们的代码:

<head>
    <script type = "text/javascript" src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <style type="text/css"> 
        #myTable{ 
           width:"90%";
           min-width: 250px;
           word-wrap:break-word;
           overflow:visible; 
           position:absolute;
           border:solid 0px;
           top:250px;
           left:720px;
           right:720px;
           bottom:50px;
           font-family:"Times New Roman", Times, serif;
           text-align:justify
        } 
   </style> 

</head>
<body>
    <div id="myTable"> <div>

    <script type="text/javascript">  
        var skip = 0;
        function get_data(index) {
            $.ajax({
                url : 'getData.php',
                type : 'POST',
                data: ({"skip":skip}),
                success : function(data) { 
                    if(data && data.trim()!='') {
                        skip = skip+1;
                        showText("#myTable", data, 0, 5); 
                    }
                    else {
                        setTimeout(function () { get_data(skip); }, 30000);
                    }
                },
                error : function(request,error)
                {
                    alert("Request error : "+JSON.stringify(request));
                }
            });
        }

        function showText(target, message, index, interval) {   
            if (index < message.length) {
                $(target).append(message[index++]);
                setTimeout(function () { showText(target, message, index, interval); }, interval);
            }
            else {
                get_data(skip);
            }
        }

        //var period = 10000; //NOTE: period is passed in milliseconds
        get_data(skip);
        //setInterval(page_refresh, period); 
    </script>

</body>

3 个答案:

答案 0 :(得分:1)

在SQL中,如果您联系CHAR(13)任何字符串,它将为您提供换行符。

DECLARE @textBreaking NVARCHAR(50)
SET @textBreaking = 'FIRST LINE.' + CHAR(13) + 'FIRST LINE.'
SELECT @textBreaking

选择此块将返回以下内容:

  

第一行。
  第二行。

从SQL获取文本并在网页上显示它应该达到你想要的效果。

答案 1 :(得分:0)

您应该尝试在元素标记<div><p>或其他内容中附加消息, $(target).append('<p>' +message[index++]+ '</p>');

然后为该标记设置带有边距或填充的样式以分隔每条消息。

p {
  margin-bottom:15px;
  margin-top:15px;
  //or
  padding-bottom:15px;
  padding-top:15px;
}

答案 2 :(得分:-1)

分析您的http://xx.xxx.xx.xxx/getData.php节目中没有<br />个标签,但\n代替您的输出。

在您的JS代码中,您需要将\n替换为<br />。#

我认为message[index++]包含您的文字,所以:

$(target).append(message[index++].replace("\n", "<br />");