【问题标题】:Why is this simple php form not posting?为什么这个简单的 php 表单没有发布?
【发布时间】:2016-11-28 01:19:54
【问题描述】:

这是一个简单的表格。但是,它根本不起作用。

HTML 表单:

 <body>
    <form method="POST" action="porra.php">
         <div id="refeicao">
                <h1>Segunda</h1>
            Café da manhã
            <br><input name="Cafe da manhã-quantidade-0" type="number" min="0" placeholder="un." />
<input type="submit" name="submit"/>
    </form>
    <script src="gerar_cardapio_js.js" language="Javascript" type="text/javascript"></script>
    </body>

PHP 代码(页面“porra.php”):

<?php
$var = $_POST["Cafe da manhã-quantidade-0"];
?>

但是,提交后我收到此错误:

Notice: Undefined index: Café da manhã-quantidade-0 in C:\xampp\htdocs\cardapio\porra.php on line 2

有人可以完成这项工作吗?

编辑:

我编辑了代码以更正一个错字并删除我没有用于此问题的代码。

【问题讨论】:

  • input name="Cafe da manhã-quantidade-0" 没有值
  • 我使用这个页面来纠正我的代码中的错误。所以,它表达了我的愤怒哈哈
  • Majeebu Rahman,我做了这个更改: 但还是不行。
  • 请运行var_dump($_POST);,这样您就可以看到键和值...
  • 您必须像这样访问它:$_POST['Cafe_da_manhã-quantidade-0']。看看this answer。如果您查看我之前评论的结果,您会看到空格已转换为_(至少在我测试时)

标签: php forms post


【解决方案1】:

重命名输入名称,例如 cafe-da-manha-quantidade-0 不要使用空格或重音字符。

<body>
<form method="POST" action="porra.php">
     <div id="refeicao">
            <h1>Segunda</h1>
        Café da manhã
        <br><input name="cafe-da-manha-quantidade-0" type="number" min="0" placeholder="un." />
</form>
<script src="gerar_cardapio_js.js" language="Javascript" type="text/javascript"></script>
</body>

在 php 中使用 isset 不产生警告

if (isset($_POST['cafe-da-manha-quantidade-0'])) {
      $yourvar = $_POST['cafe-da-manha-quantidade-0'];
    }

【讨论】:

  • 我正在尝试获取第一个输入的值,而不是第二个。我应该删除我不使用的代码部分,所以我要编辑原始代码。
  • 最好添加一个有用的解释,为什么 OP 应该删除空格和非 ascii 字符以获得完整的答案
  • @Drakes 你是对的,我是 stackoverflow 的新手,谢谢
  • 你在 porra.php un echo ($var); :)
  • 删除所有空格和非 asci 字符有效。谢谢。
【解决方案2】:

表单的输入索引设置为“Cafe da manhã-quantidade-0”

php 脚本正在寻找“Café da manhã-quantidade-0”

可能值得使用纯 ascii 来完全避免这个问题,比如“数量”

【讨论】:

  • 这肯定是一个错字,我更改了代码,但它仍然无法正常工作。但是,我将编辑原始帖子以更正该问题。泰。
  • 尝试不带空格。或者将它们替换为 - 或 _
  • 是的,这就是问题所在。谢谢!
【解决方案3】:
<body>
<form method="POST" action="porra.php">
     <div id="refeicao">
            <h1>Segunda</h1>
        Café da manhã
        <br><input name="Cafe da manhã-quantidade-0" type="number" min="0" placeholder="un." />

        <select name="formato" name="Café da manhã-porcionamento-1">
        <option value="" ></option>
        <option value="un" >un</option>
        <option value="g de" >g de</option>
        <option value="ml de" >ml de</option>
        <option value="fatia de" >fatia de</option>
        <option value="fatia média de" >fatia média de</option>
        <option value="fatias de" >fatias de</option>
        <option value="fatias médias de" >fatias médias de</option>
        <option value="C.S de" >C.S de</option>
        <option value="c.c de" >c.c de</option>
        <option value="copo de" >copo de</option>
        <option value="copos de" >copos de</option>
        </select>
        <input type="submit" name="submit"/>
</form>
<script src="gerar_cardapio_js.js" language="Javascript" type="text/javascript"></script>
</body>

【讨论】:

  • 我试过这段代码,只改变了表单的“动作”,但它不起作用。不仅如此,值应该由应用程序的用户输入,而不是我。
  • 无需更改操作,请更改输入名称
  • 错误表明脚本是 porra.php,因此无需更改操作
猜你喜欢
  • 2011-04-15
  • 2017-04-04
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 2023-03-16
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多