【问题标题】:How can I get the values from the PHP generated forms?如何从 PHP 生成的表单中获取值?
【发布时间】:2019-01-06 20:12:57
【问题描述】:

我不知道在哪里或如何使用 $_POST 来获取表单的值。

This is the whole code, I uploaded it on GitHub if you want to see the whole thing

这是我试图从中获取值的文件。

new.php

<?php
if (!empty($_POST) and isset($_POST['actiune']))
{
$actiune = isset($_POST['actiune']) ? $_POST['actiune'] : NULL;
switch($actiune){
//CASE 1
case 'addElev': echo '<div class=dbFormText>Adauga elev</div><div 
class="databaseform"><form action="" method="post">
<input type="text" name="numeElev" placeholder="Nume elev"/>
<input type="text" name="orasElev" placeholder="Localitate"/>
<select name="sexElev">
<option value="Baiat">Baiat</option>
<option value="Fata">Fata</option></select>
<input type="text" name="tlfElev" placeholder="Nr. de telefon"/>
<input type="text" name="birthdayElev" placeholder="Nastere(DD-MM-YYYY)"/>
<input type="submit" value="Submit">
</form></div>';
break;
}
}
?>

这是第一个下拉列表的页面,它给了我开关的值

管理面板.html

<div class="dropdowns">
<form action="" method="post">
<select name="actiune" onchange="this.form.submit()">
<option>Selecteaza actiunea</option>
<option value="addElev">Adauga elev</option>
<option value="addNota">Adauga nota</option>
<option value="addAbsenta">Adauga absenta</option>
<option value="addTeza">Adauga teza</option>
<option value="deleteElev">Sterge elev</option>
<option value="deleteNota">Sterge nota</option>
<option value="deleteAbsenta">Sterge absenta</option>
<option value="deleteTeza">Sterge teza</option>
<option value="modifyElev">Modifica elev</option>
<option value="modifyTeza">Modifica teza</option>
<option value="modifyPurtare">Modifica nota purtare</option>
</select>
<?php include('new.php') ?>
</div>

【问题讨论】:

  • @yak0d3 为什么你觉得他们的问题与你认为可能重复的内容有关?
  • @FunkFortyNiner 好吧,第一行说明了一切:“我不知道在哪里或如何使用 $_POST 来获取表单的值。”。可能的重复是关于同一件事,基本上是“将数据从 HTML From 发送到 PHP”
  • 您已经在代码中使用$_POST['actiune'],到底是什么问题?
  • @yak0d3 您链接的参考更多是关于 PHP 未正确解析。

标签: php forms


【解决方案1】:

当您提交具有post 方法的表单时,例如

<form method="post">

(注意:action="" 是多余的,可以省略)

目标页面(在本例中为自身)将提供$_POST 数组。

您可以使用以下方法转储整个数组以查看值:

if (!empty($_POST) and isset($_POST['actiune']))
{
var_dump($_POST);
}

此数组应包含 &lt;form&gt; 标记中的所有值,前提是已设置 name(将用作数组中的“键”)。

【讨论】:

    【解决方案2】:

    不确定开关的作用是什么,在代码顶部添加了对 postvars 的获取。我相信你可以做一些 php 来确保设置了变量。此外,actiune 不是 postvar,它不是任何输入字段的名称,因此不要执行 $_POST['actiune']。它不会工作。否则你必须添加一个隐藏字段,我在这里为你做了。

    <?php
        if (!empty($_POST) {
    
        $numeElev = $_POST['numeElev'];
        $orasElev = $_POST['orasElev'];
        $sexElev = $_POST['sexElev'];
    
        }
    
    
        if (!empty($_POST) and isset($_POST['actiune']))
        {
        $actiune = isset($_POST['actiune']) ? $_POST['actiune'] : NULL;
        switch($actiune){
        //CASE 1
        case 'addElev': echo '<div class=dbFormText>Adauga elev</div><div 
        class="databaseform"><form action="" method="post">
        <input type="text" name="numeElev" placeholder="Nume elev"/>
        <input type="text" name="orasElev" placeholder="Localitate"/>
        <input type="hidden" name="actiune" placeholder="1"/>
        <select name="sexElev">
        <option value="Baiat">Baiat</option>
        <option value="Fata">Fata</option></select>
        <input type="text" name="tlfElev" placeholder="Nr. de telefon"/>
        <input type="text" name="birthdayElev" placeholder="Nastere(DD-MM-YYYY)"/>
        <input type="submit" value="Submit">
        </form></div>';
        break;
        }
        }
        ?>
    

    【讨论】:

    • $_POST['actiune'] 来自另一种形式。我会发布所有代码,但是太长了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多