如何将动态数据库值从一个html元素连接到另一个?

时间:2013-08-16 18:28:05

标签: php mysql database zurb-foundation

我很难制定这个问题所以这是可以理解的,但是这里有。

我有一个名为apartments.php的页面。在这个页面上,我列出了我公司数据库中的一些行,您可以表示有兴趣租用。 公寓打印出来像这样:

<?php               
   foreach ($apartments as $apartment) { ?>
     <tr>
        <td><?php echo $apartment['apartments_room'] ?></td>
        <td><?php echo $apartment['apartments_area'] ?></td>
        <td><?php echo $apartment['apartments_rent'] ?></td>
        <td><?php echo $apartment['apartments_address'] ?></td>
        <td><?php echo $apartment['apartments_floor'] ?></td>
        <td><?php echo $apartment['apartments_city'] ?></td>
        <td><?php echo $apartment['apartments_freeFromDate'] ?></td>
        <td><a href="#" data-reveal-id="<?php echo $apartment['apartments_id'] ?>" name="id" class="button">Apply!</a></td>
     </tr>
<?php } ?>

每个打印出来的公寓都有自己的按钮。按此按钮时,将显示模态/弹出窗口。 这是我的问题。

当模态弹出时,我希望它显示公寓的信息,我按下了按钮。 所以来自按钮的data-reveal-id值(代表特定公寓的db-id)是我需要进入模态div的id-value。另外我需要写出那个公寓的地址(db列'apartments_address')。

所以这就是我需要它的方式:

<div id="HERE I NEED TO GET THAT ID" class="reveal-modal">
    <h2>AND HERE I NEED TO PRINT OUT THE NAME OF THE ADDRESS</h2>

    // Here i make room for an application form, but that's irrelevant...
</div>

这不应该是件事,对吧?我希望你能帮助我。谢谢!

(如果重要的话,我会使用基础Zurb 4的模态。)

1 个答案:

答案 0 :(得分:1)

首先,你的html没有链接到新页面:

<a href="#" id="<?php echo $apartment['apartments_id'] ?>">

这可能看起来像这样:

<a href="streetEdit.php?id=<?php echo $apartment['apartments_id'] ?>">

然后你可以创建一个名为streetEdit.php的新php页面 在该页面中,您可以从数据库中选择适当的行

$sql = "select * from myApartmentsTable where id = {$_GET['id']}";

查看上面网址中传递的ID如何显示在$ _GET?

接下来,使用sql进行查询并将其输出到页面上。

你需要一个html表单。使用隐藏的输入来跟踪您正在编辑的ID:

<form method="POST" action="updateStreet.php">
    <input type="hidden" name="id" value="<?php echo $apartment['apartments_id'] ?>">
    <input type="text" name="streetName" value="<?php echo $apartment['streetName'] ?>"
    <input type="submit">
</form>

然后你需要编写updateStreet.php。由于表单已POST,您将使用$ _POST而不是$ _GET

$id = $_POST['id'];
$streetName = $_POST['streetName'];

注意,您应该使用PDO进行SQL查询

$sql = "update apartments set streetName = :name where id = :id";

$pdo = new PDO();

$stmt = $pdo->prepareStatement($sql);
$stmt->bindParam(':name', $streetName );
$stmt->bindParam(':id', $id);

http://php.net/manual/en/pdo.prepared-statements.php

这将阻止SQL注入攻击。如果您有更多问题,请进一步询问