我有一个HTML/Twig/Bootstrap文件,其中有两个按钮:
<form method="post" action="procuser.php">
<div class="form-group">
<label for="Details">Details:</label>
<textarea class="form-control" rows="5" id="details" name="details">{{ details }}</textarea>
</div>
<button type="submit" name="button" value="submit" class="btn btn-default">Submit</button>
<button type="submit" name="button" value="cancel" class="btn btn-default">Cancel</button
<br><span class="err">{{ err }}</span>
</form>
然后在PHP中,我使用以下检查来检查表单是否已提交/取消:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (isset($_GET["button"]) && $_GET["button"] == "submit")
{
if (postData(input("details"))) // <- never reaches here?
header("success.php");
}
else
header("menu.php");
}
但是提交按钮不起作用,我总是被重定向到菜单。
因为您在html中使用了method="post"的表单。这就是您无法通过$_get获取按钮值的原因
更改:
if (isset($_GET["button"]) && $_GET["button"] == "submit")
至:
if (isset($_POST["button"]) && $_POST["button"] == "submit")
根据本网站:http://www.w3schools.com/tags/tag_button.asp
注意:如果使用<按钮>HTML表单中的元素,不同浏览器可以提交不同的值。使用<输入>要在中创建按钮HTML表单。
我建议使用
<input type="submit" name="button" value="submit" class="btn btn-default" />
<input type="submit" name="button" value="cancel" class="btn btn-default" />
if(isset($_GET["button"])&$_GET["button"]="submit")
在该代码中,事件不正确,用户可以一次单击一个按钮,因此不可能一次单击两个按钮:)
使用这个
如果(isset($_GET["button"])="submit")