0

我想从 MySQL 数据库加载内容数据,但我有一个问题。我可以回显标题、链接和日期,但我不能写文章内容。

我的MySQL数据(存储在文本类型列中):

<div id="player"></div> 
    <p>21.06.2013 r. jak co roku obchodziliśmy w naszej szkole Dzień Patrona. W tym roku po raz pierwszy z tej okazji odbył się rajd rowerowy oraz pieszy urozmaicony międzyklasową rywalizacją.</p>
    <p>Każda klasa niezależnie od wybranego typu rajdu, musiała zmierzyć się z postawionymi przed nią zadaniami, do których należały: klasowy okrzyk, quiz o Norwegii, zawody pływacko-kajakowe, wykonanie zdjęcia z krową oraz zawody strzeleckie.</p>
    <p>W tym roku rywalizację wygrała klasa 3aTI. Drugie i trzecie miejsce zajęły kolejno klasy 1bLO i 3SL.</p>

    <script>
    $(document).ready(function(){
        $('#player').youTubeEmbed({
            video: 'http://www.youtube.com/watch?v=-VprJHEmmJk',
            width: 500,         // Height is calculated automatically
            progressBar: true       // Hide the progress bar
        });
    });
    </script>



运行良好的JQuery 1数据:

$("#dates").append('<li><a href="#"><?php echo date("j.m", strtotime($tresc[1])) ?></a></li>');



JQuery 2数据不起作用:

$("#issues").append('<li id="date<?php echo $i ?>"> <h1> <a href="<?php echo $tresc[5] ?>"> <?php echo $tresc[2] ?> </a> </h1> <p> <?php echo $tresc[3]; ?> </p> </li>');

我的网站显示:

'); $("#dates").append('
21.06
'); 

而不是存储在数据库数据中。



当我删除

<p> <?php echo $tresc[3]; ?> </p>

其余代码运行良好。



完整的 PHP 文件

<h2 style="position: relative; top:-22px;">Aktualności</h2>
<div id="timeline">
    <ul id="dates">
    </ul>
    <ul id="issues">
    </ul>
    <a href="#" id="next">+</a> <!-- optional -->
    <a href="#" id="prev">-</a> <!-- optional -->
</div>

<script>
<?php
    $i = 1;
    if(isset($rok) && isset($miesiac)) 
    {
        $d1 = $rok.'-'.$miesiac.'-01';
        $d2 = $rok.'-'.$miesiac.'-31';
        $SQL = "SELECT * FROM news WHERE data >'" . $d1 . "' AND data <'" . $d2 . "' ORDER BY data DESC";
    } else {
        $SQL = "SELECT * FROM news ORDER BY data DESC LIMIT 10";
    }
    $q=mysql_query($SQL);
    $ilosc=mysql_num_rows($q);//ile jest takich stron w bazie 0 czy 1
    while( $tresc=mysql_fetch_row($q) ) 
    {
        if($tresc[7]==1) {
        ?> 
            $("#issues").append('<li id="date<?php echo $i ?>"> <h1> <a href="<?php echo $tresc[5] ?>"> <?php echo $tresc[2] ?> </a> </h1> <p> <?php echo $tresc[3]; ?> </p> </li>');
            $("#dates").append('<li><a href="#"><?php echo date("j.m", strtotime($tresc[1])) ?></a></li>');         
        <?php
            $i++;
        }
    }
    mysql_free_result($q);
?>

</script>



编辑 如果我有这两行:

$("#issues").append('<li id="date<?php echo $i ?>"> <h1> <a href="<?php echo $tresc[5] ?>"> <?php echo $tresc[2] ?> </a> </h1> <p> <?php echo $tresc[3]; ?> </p> </li>');
$("#issues").append('<li id="date<?php echo $i ?>"> <h1> <a href="<?php echo $tresc[5]; ?>"> <?php echo $tresc[2]; ?> </a> </h1> <p> <?php echo $tresc[3]; ?> </p> </li>');

它显示来自 mySQL 的数据,但是当我删除其中一个时,我只收到 ');

4

3 回答 3

1

您在 mysql 中的字符串包含换行符,这在 javascript 字符串中无效。例如,以下 javascript 无效:

var foo = 'This is a multi
line string';

要解决此问题,请将您的多行 html 回显到隐藏的“模板”div 中,然后在 jquery 中将该模板 div 移动到您需要的位置。

例如:

<div id="dates-template" style="display:none">
    <li id="date<?php echo $i ?>">
        <h1><a href="<?php echo $tresc[5] ?>"> <?php echo $tresc[2] ?> </a></h1>
        <p> <?php echo $tresc[3]; ?> </p>
    </li>
</div>

然后在js中:

$('#dates').append($('#dates-template > *'));
于 2013-09-08T23:13:50.983 回答
1

看起来是因为您的代码包含换行符。尝试使用 <?php echo json_encode($tresc[3]); ?>

于 2013-09-08T23:18:21.837 回答
-1

我想

$("#issues").append('<li id="date<?php echo $i ?>"> <h1> <a href="<?php echo $tresc[5]; ?>"> <?php echo $tresc[2]; ?> </a> </h1> <p> <?php echo $tresc[3]; ?> </p> </li>');

改变

 <?php echo $tresc[3] ?>

 <?php echo $tresc[3]; ?>
于 2013-09-08T23:26:45.540 回答