问题是将公告作为div元素上传。我通过jQuery寻找一种方法来做到这一点,但是我对jQuery知之甚少,所以我无法找到解决方案。我确实通过PHP找到了一个有效的解决方案,但它并不是很优雅,我觉得有更好的方法可以做到这一点。
这是代码(announcements.php):
<?php
$sql = $link->prepare('SELECT content, dateset FROM announcements WHERE email=":email"');
$sql->bindParam(':email', $_SESSION['email']);
$sql->execute();
$row = $sql->fetchAll(PDO::FETCH_ASSOC);
foreach ($row as $r) {
echo '<div class="announcement"><div class="announcementTopBar"><div class="announcementPic"><img src="smiley.png" alt="pic" width="25" height="25" /></div><span>Some Dude</span></div><div id="announcementContent"><span>';
foreach ($r as $data) {
echo $data;
}
echo '</span></div></div>';
}
?>
HTML文件:
<div id="somediv">
<?php include("announcements.php"); ?>
</div>
我还能使用其他方法吗?这个解决方案(有一些改进)是否足够?
答案 0 :(得分:4)
您的解决方案没有任何问题。另一种方法是使用AJAX call来检索数据,并使用Javascript将其附加到DOM。
使用PHP的原因:
使用AJAX的原因:
注意:我在代码中看到的唯一错误是你在循环中定义了一个ID为announcementContent
的元素 - HTML规范只允许一个ID实例在DOM中。你应该在这里使用一个类,它可以用于(可能)元素的多个实例。
答案 1 :(得分:0)
我在这里可以看到您正在创建具有特定类的嵌套标签,标记并在它们之间显示数据。这可以通过jquery实现,也可以通过创建标记,向它们添加类并将它们附加到层次结构中的各自父级。
var x = $("<div></div>").addClass("className");
$("#parentDiv").append(x);
为了从服务器获取数据,AJAX Call始终是一个更好的选择,它是异步调用(可以更改)。
对于AJAX,请在此处阅读POST AJAX REQUEST