问题是将公告作为 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>
还有其他方法可以使用吗?这个解决方案(经过一些改进)是否足够?
最佳答案
您的解决方案没有任何问题。另一种选择是使用 AJAX call检索数据,并使用 Javascript 将其附加到 DOM。
使用 PHP 的原因:
- 并非所有浏览器都支持 Javascript,您可以关闭 Javascript
- 始终一致地输出数据
使用 AJAX 的原因:
- 如果您希望在不刷新页面的情况下将新数据添加到您的页面。例如。:
- “点击此处加载”按钮加载内容而不刷新页面
- 每隔一段时间自动向页面添加新内容(例如 Facebook 的新闻提要)
- 以同样的方式删除或编辑数据
注意:我在您的代码中看到的唯一错误是您在循环中定义了 ID 为 announcementContent
的元素 - HTML 规范只允许一个实例DOM 中的 ID。您应该在此处使用一个类,该类旨在(可能)用于一个元素的多个实例。
关于php - 通过php从数据库上传数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24668404/