我创建了一个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(); ?>
答案 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>";
如果这个说法不够明确,请说明。我很乐意为您提供一些代码,以便更好地展示我之前是如何完成的。