我想从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的数据,但是当我删除其中一个时,我只收到 ');
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 > *'));
看起来是因为您的代码包含换行符。尝试使用 <?php echo json_encode($tresc[3]); ?>
我认为
$("#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]; ?>