繁体   English   中英

将表单提交到动作php文件

[英]Submit form to action php file

我有一个表单,当用户单击提交时,我需要运行一个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脚本的形式?

抱歉,如果我在语法上犯了任何错误,非常感谢您能提供的任何帮助。

您的代码有些错误。

您正在将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']) ) {...}

脚注:

看到您打算发送到数据库:

我希望您打算在准备好的语句中使用mysqli ,或者在准备好的语句中使用PDO

有两件事:

  • 您使用的是$ _GET而不是$ _POST
  • isset($ _ POST ['submit'])不是一个很好的检查,不是每个浏览器都会在其请求中发送“提交”按钮。 (除了您甚至都没有命名“提交”按钮的事实,因此,就目前而言,它不会在任何浏览器中出现。)
  • 最好使用:

码:

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

}

您错过了命名“提交”按钮的名称。 因此,没有给出$ _POST / $ _ REQUEST数组中的条目。 您可能要使用php_key_exists()来检查数组中的索引,具体取决于php设置,因为isset可能会引发错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM