【问题标题】:Form isn't picking up the variables to post表单没有选择要发布的变量
【发布时间】:2023-03-17 01:02:02
【问题描述】:

我的测试PHP提交代码:

<?php 
if($_POST['create']) { echo $_POST['name']; }
?> 

我的 HTML 表单代码:

<form class="form-horizontal" id="ConsultantSignUp" method="post" action="#">

<div class="control-group">
    <label class="control-label" for="inputForename">Name</label>
    <div class="controls">
        <input type="text" class="input-xlarge" id="name" name="name" rel="popover" data-content="Enter your first and last name." data-original-title="Full Name">
    </div>
</div>

<div class="control-group">
        <label class="control-label" for="input01"></label>
        <div class="controls">
            <button type="submit" class="btn btn-success" rel="create" title="create" id="create" name="create">Create My Account</button>
        </div>

    </div>

</form>

我的错误是提交后它甚至没有打印出名称。我检查了 PHP 错误日志,它说:

PHP 注意:未定义索引:在 /Users/**/sites/signup.php 的第 2 行创建

第 2 行是 'if($_POST['create']) { echo $_POST['name']; }'。

我知道 isset() 方法可以删除未定义索引通知,但是,我只想测试我的表单!

【问题讨论】:

  • 从操作中删除#。离开action=""
  • 已编辑!我已经有一个了。
  • 在您的表单中没有一个名为create 的字段,这就是它没有被“拾取”的原因。 - 编辑,它在你的编辑中。
  • 在 PHP 代码的开头使用 var_dump($_POST); 来获取所有发布的数据。
  • 如果我是你,我会简单地检查帖子是否为空。如果是这样,我会做某种逻辑。看看空记录,确保按照 s.webbandit 的建议输出帖子数据

标签: php html forms


【解决方案1】:

这是我的全部代码...这在 Chrome、Explorer 和 Firefox 中非常适合我。看看就好了

<?php
    if(isset($_POST['create'])) 
    { 
        echo $_POST['name']; 
    }
    else
    {
?>
<form class="form-horizontal" id="ConsultantSignUp" method="post" action="#">

<div class="control-group">
<label class="control-label" for="inputForename">Name</label>
<div class="controls">
    <input type="text" class="input-xlarge" id="name" name="name" rel="popover" data-content="Enter your first and last name." data-original-title="Full Name">
</div>
</div>
<div class="control-group">
    <label class="control-label" for="input01"></label>
    <div class="controls">
        <button type="submit" class="btn btn-success" rel="create" title="create" id="create" name="create">Create My Account</button>
    </div>
</div>

<?php
}
?>

【讨论】:

  • 虽然 OP 应该这样做,但他已经意识到这一点(请参阅问题的最后一段)并且不会解决问题。
  • Ben 试试isset(),因为这篇文章对我有用,,,,
  • 您是否在 Internet Explorer 中进行测试?由于 IE 中的错误,该问题不会出现在该浏览器的旧版本/怪癖模式中。
  • 多么奇怪。您是否使用问题中的确切 HTML 进行测试?
  • 哦,我明白了。缺少值会导致它以空字符串提交,而不是不是成功的控件。
【解决方案2】:

您的&lt;button ... name="create"&gt; 没有value,因此它将提交一个空字符串,$_POST['create'] 将评估为假。

给它一个值。

【讨论】:

    【解决方案3】:

    当您使用 isset() 函数时,'未定义索引' NOTICE 将消失。 当还发布了未选中的复选框时,通常会发生这种情况。

    错误只是因为提交按钮上没有传递“值”并且提交按钮是空的。

    将提交按钮替换为,

    <button value='submitbtn' type="submit" class="btn btn-success" rel="create" title="create" id="create" name="create">Create My Account</button>
    

    PS ONLY (value='submitbtn') 被添加到您的原始按钮

    【讨论】:

    • 我知道,我只是告诉你,错误是存在的,因为 SUBMIT 按钮是通过 NO VALUE 传递的。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2013-10-16
    相关资源
    最近更新 更多