我有一个表单,当用户点击提交时,我需要运行一个php文件。下面是表格和php文件。
<form action="php_scripts/test.php" method="POST">
<input name="feature" type = "text" placeholder="Feature" />
<input name="feature2" type = "text" placeholder="Feature2" />
<input type="submit" value = "submit"/>
</form>
test.php的
<?php
if( isset($_GET['submit']) )
{
$feature = $_POST['feature'];
// do stuff (will send data to database)
}
?>
我遇到的问题是,当我在表格上按提交时,
if( isset($_GET['submit']) )
始终返回false。
任何人都可以解释为什么会这样吗?我是否完全误解了如何实现向php脚本发送数据的表单?
如果我犯了任何语法错误而感到抱歉,非常感谢您提供任何帮助。
答案 0 :(得分:5)
您的代码存在一些问题。
您正在将GET与POST方法混合使用。另外,为您的输入添加值并且您的提交按钮未命名,您尝试将其用作条件语句。
HTML
<form action="php_scripts/test.php" method="POST">
<input name="feature" value="feature" type = "text" placeholder="Feature" />
<input name="feature2" value="feature2" type = "text" placeholder="Feature2" />
<input type="submit" name="submit" value = "submit"/>
</form>
PHP
<?php
if( isset($_POST['submit']) )
{
$feature = $_POST['feature'];
$feature2 = $_POST['feature2'];
// do stuff (will send data to database)
}
?>
旁注:你可以/也应该检查空值。
if(isset($_POST['submit'])
&& !empty($_POST['feature'])
&& !empty($_POST['feature2']) ) {...}
<强>脚注:强>
看到你打算发送给DB:
我希望您计划使用mysqli
with prepared statements或PDO with prepared statements。
答案 1 :(得分:0)
有几件事:
代码:
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
}
答案 2 :(得分:0)
您错过了提交按钮的名称。因此,没有给出$ _POST / $ _ REQUEST数组中的条目。根据php设置,您可能希望使用array_key_exists()来检查数组中的索引,因为isset可能会引发错误。