通过php从数据库上传数据

时间:2014-07-10 04:16:15

标签: php jquery

问题是将公告作为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>

我还能使用其他方法吗?这个解决方案(有一些改进)是否足够?

2 个答案:

答案 0 :(得分:4)

您的解决方案没有任何问题。另一种方法是使用AJAX call来检索数据,并使用Javascript将其附加到DOM。

使用PHP的原因:

  • 并非所有浏览器都支持Javascript,您可以关闭Javascript
  • 始终保持一致的数据输出

使用AJAX的原因:

  • 如果您希望将新数据添加到页面而无需刷新页面。例如。:
    • “点击此处加载”按钮加载内容而不刷新页面
    • 每隔一段时间自动向页面添加新内容(如Facebook的新闻Feed)
    • 以相同方式删除或编辑数据

注意:我在代码中看到的唯一错误是你在循环中定义了一个ID为announcementContent的元素 - HTML规范只允许一个ID实例在DOM中。你应该在这里使用一个类,它可以用于(可能)元素的多个实例。

答案 1 :(得分:0)

我在这里可以看到您正在创建具有特定类的嵌套标签,标记并在它们之间显示数据。这可以通过jquery实现,也可以通过创建标记,向它们添加类并将它们附加到层次结构中的各自父级。

var x =  $("<div></div>").addClass("className");

$("#parentDiv").append(x);

为了从服务器获取数据,AJAX Call始终是一个更好的选择,它是异步调用(可以更改)。

对于AJAX,请在此处阅读POST AJAX REQUEST