(isset $_POST['submit']) 条件始终为假
(isset $_POST['submit']) condition is always false
我在名为 : addSection.php
的页面中编写了以下代码
<from class="mainSettingsForm add" action="" method="post">
<h1>Add new section</h1>
<p>
<label>new section</label>
<input type="text" name="section_name" placeholder="section title">
<label>section status</label>
<select name="sectionStatus">
<option value="active">active</option>
<option value="disActive">disActive</option>
</select>
</p>
<p>
<label>section location</label>
<select name="sectionLocation">
<option value="Side">Side</option>
<option value="Body">Body</option>
</select>
</p>
<label>section description</label>
<textarea name="sectionDesc" placeholder="Section description"></textarea>
<input class="btn-primary" type="submit" name="submit" value="Add">
</from>
以及名为 : Sections.php
的页面中的以下代码
<h2><a href="?page=sections&action=add">Add new section</a></h2>
<?php
if ($_POST OR @$_GET['action'])
{
if (isset($_GET['action']) AND $_GET['action']=="add")
{
include 'views/addSection.php';
if (isset($_POST['submit'])&&$_POST['submit']=="Add")
echo 'ok';
}
}
else
{
include 'views/sections.php';
}
?>
这个声明
如果 (isset($_POST['submit'])&&$_POST['submit']=="Add")
回声'ok';
永远不会被执行,因为它总是给出假值,如何使 isset($POST['submit']) 语句给出真值来执行条件?
您的陈述永远不可能是真的,因为第二个 IF 语句仅适用于 $_GET
变量,然后您尝试访问其中的 $_POST
。您不能同时拥有 GET 和 POST。
您还有一些错别字 - $_GET['action']
将是 "Add" 而不是 "add" 并且您的 [=22] 中有 <from>
而不是 <form>
=].
if ( isset( $_POST['submit'] ) && $_POST['submit'] == "Add" ){
echo "this is a POST and submit is add";
} elseif ( isset( $_GET['action']) && $_GET['action'] == "Add" ){
echo "this is a GET and submit is add";
} else {
include 'views/sections.php';
}
请试试我的代码。这将帮助您了解您传递的是什么。我还修复了表单标签 - 正如@Hobo Sapiens 建议的那样。
<?php print_r($_REQUEST);?>
<form class="mainSettingsForm add" action="" method="post">
<h1>Add new section</h1>
<p>
<label>new section</label>
<input type="text" name="section_name" placeholder="section title">
<label>section status</label>
<select name="sectionStatus">
<option value="active">active</option>
<option value="disActive">disActive</option>
</select>
</p>
<p>
<label>section location</label>
<select name="sectionLocation">
<option value="Side">Side</option>
<option value="Body">Body</option>
</select>
</p>
<label>section description</label>
<textarea name="sectionDesc" placeholder="Section description"></textarea>
<input class="btn-primary" type="submit" name="submit" value="Add">
</form>
我在名为 : addSection.php
的页面中编写了以下代码<from class="mainSettingsForm add" action="" method="post">
<h1>Add new section</h1>
<p>
<label>new section</label>
<input type="text" name="section_name" placeholder="section title">
<label>section status</label>
<select name="sectionStatus">
<option value="active">active</option>
<option value="disActive">disActive</option>
</select>
</p>
<p>
<label>section location</label>
<select name="sectionLocation">
<option value="Side">Side</option>
<option value="Body">Body</option>
</select>
</p>
<label>section description</label>
<textarea name="sectionDesc" placeholder="Section description"></textarea>
<input class="btn-primary" type="submit" name="submit" value="Add">
</from>
以及名为 : Sections.php
的页面中的以下代码<h2><a href="?page=sections&action=add">Add new section</a></h2>
<?php
if ($_POST OR @$_GET['action'])
{
if (isset($_GET['action']) AND $_GET['action']=="add")
{
include 'views/addSection.php';
if (isset($_POST['submit'])&&$_POST['submit']=="Add")
echo 'ok';
}
}
else
{
include 'views/sections.php';
}
?>
这个声明 如果 (isset($_POST['submit'])&&$_POST['submit']=="Add") 回声'ok'; 永远不会被执行,因为它总是给出假值,如何使 isset($POST['submit']) 语句给出真值来执行条件?
您的陈述永远不可能是真的,因为第二个 IF 语句仅适用于 $_GET
变量,然后您尝试访问其中的 $_POST
。您不能同时拥有 GET 和 POST。
您还有一些错别字 - $_GET['action']
将是 "Add" 而不是 "add" 并且您的 [=22] 中有 <from>
而不是 <form>
=].
if ( isset( $_POST['submit'] ) && $_POST['submit'] == "Add" ){
echo "this is a POST and submit is add";
} elseif ( isset( $_GET['action']) && $_GET['action'] == "Add" ){
echo "this is a GET and submit is add";
} else {
include 'views/sections.php';
}
请试试我的代码。这将帮助您了解您传递的是什么。我还修复了表单标签 - 正如@Hobo Sapiens 建议的那样。
<?php print_r($_REQUEST);?>
<form class="mainSettingsForm add" action="" method="post">
<h1>Add new section</h1>
<p>
<label>new section</label>
<input type="text" name="section_name" placeholder="section title">
<label>section status</label>
<select name="sectionStatus">
<option value="active">active</option>
<option value="disActive">disActive</option>
</select>
</p>
<p>
<label>section location</label>
<select name="sectionLocation">
<option value="Side">Side</option>
<option value="Body">Body</option>
</select>
</p>
<label>section description</label>
<textarea name="sectionDesc" placeholder="Section description"></textarea>
<input class="btn-primary" type="submit" name="submit" value="Add">
</form>