点击时将链接ID值从php发布到另一个php页面

时间:2017-10-02 03:03:39

标签: javascript php mysql

我希望你们能帮助我。所以问题是,如何从第1页获取该链接ID并在单击链接时将其发送到第2页?因此,我可以根据点击的ID进行查询,以显示自己的内容,而不是显示每个ID的整个内容。第2页包含在第1页中。因此,与数据库的连接是相同的。 Floors表和Rooms表位于同一个数据库中。 这是我的代码。

第1页(侧边栏菜单。例如,一楼底层)

<?php
    $result = $conn->query("select * from floors");
    while ($row = $result->fetch_assoc()) 
    {
        ?><li><a href="#floor" data-toggle="tab" id="<?php echo $row['floorid'];?>"><?php echo $row['floorname'];?></a></li><?php
    }
?>

第2页(侧边栏菜单内容。例如,底层内容,第1层内容)

<?php
    $result = $conn->query("SELECT * FROM rooms WHERE floorid = '".$_GET['id']."'");
    while($row = $result->fetch_assoc()) 
    {
        ......
    }
    mysqli_close($conn);    
?> 

3 个答案:

答案 0 :(得分:1)

您可以通过多种方式对此进行归档,但我将展示您完成此任务的两种方法。

首先是纯PHP,

第1页:

<?php
    $result = $conn->query("select * from floors");
    while ($row = $result->fetch_assoc()) 
    {
        ?><li><a class="links" href="page2.php?id=<?php echo $row['floorid'];?>" data-toggle="tab" id="<?php echo $row['floorid'];?>"><?php echo $row['floorname'];?></a></li><?php
    }
?>

上面的代码将直接将您的数据发送到第二页,您希望它从数据库中获取数据。这将工作,但它会将您的第二页加载到浏览器(如果你想要的话)。但是你已经标记了“javaScript&#39;所以我将使用jQuery和AJAX向您展示另一种方式。

第一代PHP:

<?php
    $result = $conn->query("select * from floors");
    while ($row = $result->fetch_assoc()) 
    {
        ?><li><a class="links" href="#" id="<?php echo $row['floorid'];?>"><?php echo $row['floorname'];?></a></li><?php
    }
?>
<div id="tab content>
  <div id="floor" class="tab-pane fade in">    
  </div>
</div>

您可以将此部分放在与上述代码相同的页面中,也可以将其放在单独的JS文件中并将其链接到PHP。

$(document).ready(function() {
    $(document).on('click', '.links', function(){
        var id = $(this).prop('id');

        $.ajax({
            url: 'page2.php',
            type: 'get',
            data: {'id': id}
        }).then(function (response) {
            if (response) {
                $('#floor').html(response);
            }
        });
    });
})

上述代码的作用是当文档准备就绪时,它会在指定的类上监听或查找点击事件,即&#39; .links&#39;。当这些功能看到&#39; .link&#39;下的任何链接上的点击事件。它会点击甚至点击并读取&#39; id&#39;财产价值。

然后使用AJAX将捕获的数据发送到您的第二个PHP,从该PHP获取响应,并在id&#39; floor下填充div。

另外一点是,您的处理PHP无法加载,它将在服务器中处理,主页面将不会刷新,div将使用即将到来的响应文本重新编写。

希望这有用,如果它不起作用只是让我知道。

注意:请阅读并切换到使用预准备语句。如果您正在使用mysqli,请阅读this.如果您正在使用PDO,请阅读this.

答案 1 :(得分:0)

更改

<a
    href="#floor"
    data-toggle="tab"
    id="<?php echo $row['floorid'];?>">
        <?php echo $row['floorname'];?>
</a>

<a
    href="?id=<?php echo $row['floorid'];?>#floor"
    data-toggle="tab"
    id="<?php echo $row['floorid'];?>">
    <?php echo $row['floorname'];?>
</a>

我在id之前添加了#floor,以便您可以在重定向到ID为$_GET['id']

的元素时使用floor

要避免Undefined index错误,请使用以下命令:

<?php
    if(isset($_GET['id'])){
        $result = $conn->query("SELECT * FROM rooms WHERE floorid = '".$_GET['id']."'");
        while($row = $result->fetch_assoc()) 
        {
            ......
        }
        mysqli_close($conn);
    } 
?>

答案 2 :(得分:-3)

您可以使用此代码。 这可以使用两个方法,一个是$ _GET和$ _POST

  1. $ _ GET方法示例: -
  2. if server_port: if type(server_port) == list: for a_server_port in server_port: config['port_password'][a_server_port] = config['password'] else: config['port_password'][str(server_port)] = config['password']

    添加

    HREF = “?ID = <li><a href="?id=<?php echo $row['floorid'];?>#floor" data-toggle="tab" id="<?php echo $row['floorid'];?>"><?php echo $row['floorname'];?></a></li>#地板”

    在锚标记中。

    enter image description here