PHP创建表然后允许用户单击按钮从表中获取信息

时间:2016-11-16 16:36:02

标签: php mysql database html-table

我创建了一个HTML页面,它使用PHP从数据库中获取数据并将其存储到创建的表中。我怎样才能得到它,当用户点击一个按钮时,它会根据表中的行使用php执行某个任务?

我想从数据库中获取信息并在HTML表中创建新行。在那些行中将是来自数据库的数据,每行上还有一个按钮。当用户单击该按钮时,我希望它使用指定的'name'来调用函数,该名称由变量$ nam表示。

<?php
    ob_start();
    session_start();
    require_once 'dbconnect.php';
    if( !isset($_SESSION['user']) ) {
        header("Location: index.php");
        exit;
    }
    $deny = array("222.222.222", "333.333.333");
    if (in_array ($_SERVER['REMOTE_ADDR'], $deny)) {
       header("location: http://www.google.com/");
       exit();
    }
    $res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$_SESSION['user']);
    $userRow=mysqli_fetch_array($res);
?>
<!DOCTYPE html>
<html>
    <?php header("Access-Control-Allow-Origin: http://www.py69.esy.es"); ?>
    <head>
        <title>ServiceCoin</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" href="assets/css/bootstrap.min.css" type="text/css"  />
        <link rel="stylesheet" href="scripts/home/index.css" />
    </head>
    <body>
        <center>
        <h3>Welcome, <?php echo $userRow['userName']; ?>. You Currently Have <span id="services"><?php echo $userRow['userServices']; ?></span> Services</h3>
        <p id="error"></p>
        <button onclick="send_coins()" class="button">Send Coins</button>
        <button onclick="create_service()" class="button">Create A Service</button>
        <button onclick="send_coins()" class="button">My Services</button>
        <h3>View Services</h3>
        <span><?php 
        $users = 1;
        $num = 1;
        echo "<center><table width=1000><th>Buy</th><th>Service Name</th><th>Service Cost</th><th>Service Description</th><th>Service Provider Name</th>";
        while($users < 100 && $num < 100){
            $res=mysqli_query($con,"SELECT * FROM users WHERE userId=".$users);
            $userRow=mysqli_fetch_array($res);
            $id = 0;
            while($id != 10){
                $id = $id + 1;
                if($userRow['userService'.$id] === 'null'){
                }else if(!empty($userRow['userService'.$id])){
                    echo "<tr><td name=$num ><input type=submit value=buy ></td><td class=services width=250 align=center>".$userRow['userService'.$id]."</td><td class=services width=250 align=center>".$userRow['userServiceCost'.$id]."</td><td class=services class=services width=500 align=center>".$userRow['userServiceDes'.$id]."<td class=services width=500 align=center>".$userRow['userServiceName'.$id]."</tr>";
                    //echo $id."Error: ".$con->error;
                    $num = $num + 1;
                    $id = $id + 1;
                }
            }
            $users = $users + 1;
        }
        echo "All Services Loaded";
        echo "</table></center>";
        ?></span>
            <span class="text-danger"><?php echo $msg; ?></span>
        </center>
    </body>
    <script lang="text/javascript" src="scripts/home/index.js"></script>    
</html>
<?php ob_end_flush(); ?>

1 个答案:

答案 0 :(得分:0)

首先,如果不使用名为Ajax的内容,则无法在用户操作上调用PHP函数。这是因为一旦将HTML代码提供给用户的Web浏览器,它就是客户端,并且单击按钮将不允许您从服务器请求信息(除非是新页面),除非您通过Javascript调用包含功能代码的php文件(使用Ajax)。

例如,创建“functions.js”文件并插入以下代码:

function FuncName(NameOfRow){
                $.post('phpfunctionfile.php', {NameOfRow: NameOfRow}, function(data) { 
                     if(data==1){
                         //Some sort of code, maybe display a modal with some sort of control panel to do something.
                     }
                }
}

然后在php文件中编写你的函数并回显你想要的任何变量“data”(echo $ data;)。当然你可以在这个文件中重定向到新的页面等(我之前从未尝试过它虽然它应该有用)。

现在在原始代码中假设您正在调用每个函数,具体取决于userServiceName'。$ id如果您的表中的唯一键是要使用此值作为参数调用Javascript函数。我没有测试过以下代码,我不确定它是否真的是你想要的,但你应该从下面的代码中获得想法,然后能够根据你正在创建的内容进行调整。

echo "<tr><td name=$num onClick="FuncName('".$userRow['userServiceName'.$id]."' ><input type=submit value=buy ></td><td class=services width=250 align=center>".$userRow['userService'.$id]."</td><td class=services width=250 align=center>".$userRow['userServiceCost'.$id]."</td><td class=services class=services width=500 align=center>".$userRow['userServiceDes'.$id]."<td class=services width=500 align=center>".$userRow['userServiceName'.$id]."</tr>";

如果这个说法不够明确,请说明。我很乐意为您提供一些代码,以便更好地展示我之前是如何完成的。