我想从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
');
而不是存储在db数据中。
当我删除
<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的数据,但当我删除其中一个时,我只接收
');
答案 0 :(得分:1)
mysql中的字符串包含换行符,这些换行符在javascript字符串中无效。例如,以下javascript无效:
var foo = 'This is a multi
line string';
要解决此问题,请将多行html回显到&#34;模板&#34;隐藏的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 > *'));
答案 1 :(得分:1)
看起来这是因为您的代码包含换行符。尝试使用
<?php echo json_encode($tresc[3]); ?>
答案 2 :(得分:-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]; ?>