Php 如何确定是否按下了ID未知的按钮
有人能帮我写以下代码吗Php 如何确定是否按下了ID未知的按钮,php,mysql,Php,Mysql,有人能帮我写以下代码吗 $query = "SELECT * FROM table ORDER BY dateTime"; $sqldata=mysqli_query($conn,$query) or die( 'Error Retrieving data'); echo"<form>"; $var=0; while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) { var++
$query = "SELECT * FROM table ORDER BY dateTime";
$sqldata=mysqli_query($conn,$query) or die( 'Error Retrieving data');
echo"<form>";
$var=0;
while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
{
var++;
echo"<fieldset>
<legend>"; echo $row['Name']; echo"</legend>";
echo"<table style='width:100%'>
<tr>
<td>Location</td>
<td>";
echo $row['EventLocation']; echo"</td>
</tr>
<tr>
<td>Subject</td>
<td>";
echo $row['eventSubject']; echo"</td>
</tr>
<tr>
<td>Description</td>
<td>";
echo $row['EventDescription']; echo"</td>
</tr>
<tr>
<td>Time</td>
<td>";
echo $row['dateTime']; echo"</td>
</tr>
</table> <br>
<input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>
</fieldset> <br>";
}
echo"</form>";
$query=“按日期时间从表顺序选择*”;
$sqldata=mysqli_query($conn,$query)或die('Error Retrieving data');
回声“;
$var=0;
而($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
var++;
回声“
“echo$行['Name'];echo”“;
回声“
位置
";
echo$row['EventLocation'];echo“
主题
";
echo$row['eventSubject'];echo“
描述
";
echo$row['EventDescription'];echo“
时间
";
echo$row['dateTime'];echo“
“;
}
回声“;
当我在while循环中循环时,将为表中的每个记录创建一个按钮,然后单击该按钮时,用户将注册一个事件。但是,我不知道如何检查已单击的按钮?我通常是这样做的
if(isset($_POST['btnSignUp']))
{
$insert="INSERT INTO tblEventGuests (fkEvent, fkUser) VALUES ('". $row['pkEvent'] . "', '".$_SESSION['user']."'";
if ($conn->query($insert) === TRUE)
{
echo "You have successfully signed up to this event";
}
else
{
echo "Error: " . $insert . "<br>" . $conn->error;
}
$conn->close();
}
if(isset($\u POST['btnSignUp']))
{
$insert=“插入到tblEventGuests(fkEvent,fkUser)值(“$row['pkEvent']”,“$\u会话['user']”);
如果($conn->query($insert)==TRUE)
{
echo“您已成功注册此活动”;
}
其他的
{
回显“错误:”.$insert.“
”$conn->错误;
}
$conn->close();
}
但因为我不确定按钮的名称或有多少事件(编码时)我不知道如何去做我需要做的事情。有人有什么建议吗?甚至还有其他方法吗?谢谢!使用
,而不是
。这将允许您为按钮指定一个与值不同的标签,该值将指示他们单击的提交按钮
<button type='submit' name='btnSignup' value='{$row['eventId']}'>Sign me up!</button>
给我注册!
然后在处理表单的PHP中,您可以使用$\u POST['btnSignup']
的值来了解他们注册了哪个事件。而不是
,使用
。这将允许您为按钮指定一个不同于该值的标签,该值将指示他们单击的提交按钮
<button type='submit' name='btnSignup' value='{$row['eventId']}'>Sign me up!</button>
给我注册!
然后在处理表单的PHP中,可以使用$\u POST['btnSignup']的值
以了解他们注册的事件。在循环内而不是在循环外创建表单。这样,每个表单将单独包含服务器所需的信息,而不是将所有内容发送到服务器并试图找出实际选择的信息子集
while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
{
//...
echo "<form method='POST'>
<table style='width:100%'>
<tr>
<td>Location</td>
<td>";
echo $row['EventLocation'];
echo " </td>
</tr>
<!--- etc... --->
</table><br>
</form>
<input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>
</fieldset> <br>";
}
while($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
//...
回声“
位置
";
echo$row['EventLocation'];
回声“
“;
}
编辑:如中所述,如果希望值位于
$\u POST
集合中,则还需要在表单上定义方法
属性。请注意上面更新的代码。在循环内而不是在循环外创建表单。这样,每个表单都将单独包含信息选择服务器所需的信息,而不是将所有信息发送到服务器,并尝试找出实际选择的信息子集
while($row=mysqli_fetch_array($sqldata, MYSQLI_ASSOC))
{
//...
echo "<form method='POST'>
<table style='width:100%'>
<tr>
<td>Location</td>
<td>";
echo $row['EventLocation'];
echo " </td>
</tr>
<!--- etc... --->
</table><br>
</form>
<input type='submit' class='btn btn-info' value='Sign Me Up!' name='btnSignUp'></input>
</fieldset> <br>";
}
while($row=mysqli\u fetch\u数组($sqldata,mysqli\u ASSOC))
{
//...
回声“
位置
";
echo$row['EventLocation'];
回声“
“;
}
编辑:如中所述,如果希望值位于
$\u POST
集合中,则还需要在表单上定义方法
属性。请注意上面更新的代码。当创建按钮时,创建一个隐藏的表单元素,其中包含该按钮特定的数据。首先l、
如果没有隐含POST,则默认为GET方法,并且您使用的是POST数组,这将非常失败且无提示。因此,您的查询将永远不会发生。@JayBlanchard将提交所有隐藏字段,那么这将如何指示单击了哪个按钮?Drat@Barmar,我以为每行都有一个表单。现在我可以看到我不正确。当OP说“将为我表中的每条记录创建一个按钮”我做了一些假设。甚至不知道会话是否已启动。可能与此无关。当您创建按钮时,使用按钮创建一个隐藏的表单元素,其中包含该按钮特定的数据。首先,
默认为GET方法,如果不暗示POST,并且您使用的是POST数组,则会失败,而且会失败得很惨。所以你的查询永远不会发生。@JayBlanchard所有隐藏字段都将被提交,那么这将如何表明单击了哪个按钮呢?Drat@Barmar,我以为每行都有一个表单。我现在可以看出我是错的。当OP说“将为我表中的每条记录创建一个按钮”时我做了一些假设。甚至不知道会议是否已经开始。可能与此无关。