我实际上是在尝试检索输入提交按钮值。但我不知道为什么它不起作用。谁能帮我?
当用户点击按钮时,按钮的值将发送到下一页。
<?php
include('connect.php');
// Create connection
$conn = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM userauth";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while ($row = mysqli_fetch_assoc($result)) {
?>
<html>
<head>
<title>GAF APPS</title>
</head>
<body>
<form method="post" action="branch.php">
<input type="submit" name="submit" value="<?php echo $row["Company"]; ?>">
</form>
</body>
</html>
<?php
}
} else {
echo "0 results";
}
$conn->close();
?>
这是我要检索值的地方:
<?php
if (isset($_POST['action'])) {
echo '<br />The ' . $_POST['submit'] . ' submit button was pressed<br />';
}
?>
答案 0 :(得分:1)
您没有名为&#34; action&#34;的输入,因此isset()
永远不会发生,这就是您没有收到错误的原因
为它添加else
条件后,会向您显示。
答案 1 :(得分:-1)
当在PHP中进行调试时,我倾向于使用霰弹枪方法并输出所有可能非常有趣的内容,然后将其缩小。
因此,在查看表单变量时,请使用echo var_export($ _ GET,true)或vardump($ _ GET)。
不确定是GET还是POST?使用_REQUEST,它同时包含1个变量。
使用HTML标记使其更具可读性,并使用htmlspecialchars()来转换因浏览器而通常不可见的字符。
使用这些功能可以更轻松地查看您对表单的操作。
所以回答上面的问题: 查看提到的请求变量,并通过查看HTML和代码来确定是否应该解析预期变量并在按下提交按钮时由浏览器发送。
和
查看PHP实际收到的值在处理时是否具有预期结果。
尝试将这两件事分开,因为现在HTML中的内容并不意味着在解析表单时它就在那里。在使用PHP / HTML和表单进行开发时,当您更改代码并且没有完全重新加载时,这只是一个绑定,但只需按下表单上的提交: 解析当前表单的代码将被更改,但解析后的表单内容是在浏览器中加载的内容,可能会过时。