繁体   English   中英

通过php从数据库上传数据

[英]Uploading data from database through php

问题是将公告作为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调用来检索数据,并使用Javascript将其附加到DOM。

使用PHP的原因:

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

使用AJAX的原因:

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

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

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

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

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

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

对于AJAX调用,请阅读POST AJAX REQUEST

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM