简单表单不通过_POST发送数据[重复]

Posted

技术标签:

【中文标题】简单表单不通过_POST发送数据[重复]【英文标题】:Simple form not sending data via _POST [duplicate] 【发布时间】:2013-11-22 02:51:19 【问题描述】:

哇,这太尴尬了。这应该是另一个无聊的网络表单。我以前做过很多,但出于某种原因,这个特定的人不想合作。我是否以某种方式错过了什么?几个小时以来,我一直试图弄清楚这一点。我发誓我已经尝试解决所有问题,但没有任何运气。

基本上,我试图通过 $_POST 发送到 php 文件。最终我将使用 AJAX,但现在我什至无法将愚蠢的东西发布到帖子中。因此,当您单击提交时,它会转到正确的页面。但是我收到一个错误“未定义索引(然后指向我调用我的 $_POST 变量的行)。我已经注释掉了 PHP 端的所有内容(signup1.php)所以现在它所做的只是var_dump($_POST); 所以我可以查看数据,它没有从 _POST 得到任何东西,愚蠢的东西是空的。我真的认为问题出在 html 方面。我会准确地发布我的代码。它有大量额外的 div 用于样式和布局目的。我是将所有这些都保留在那里以防万一这是错误的原因,也许你们中的一个人会知道。另外,您可能会注意到我正在使用引导程序。也许这是什么?我之前使用引导程序作为表单及其工作,但谁知道呢。

<form action="actions/signup1.php" method="post">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label for="name">Name:</label>
                    <input type="text" id="name" class="form-control" placeholder="John Smith">
                </div>
            </div> <!-- end of name input column -->
            <div class="col-md-6">
                <div class="form-group">
                    <label for="phone">Phone Number:</label>
                    <input type="text" id="phone" class="form-control" placeholder="801-321-9876">
                </div> 
            </div> <!-- end of phone number input column -->
        </div> <!-- end of first .row of inputs -->

        <div class="row">
            <div class="col-md-6 column-sm-12">
                <div class="form-group">
                    <label for="email">Email Address:</label>
                    <input type="text" id="email" class="form-control" placeholder="johnsmith@me.com">
                </div>
            </div> <!-- end of email address input column -->

            <div class="col-md-3 col-sm-6">
                <div class="form-group">
                    <label for="city">City:</label>
                    <select id="city" class="form-control">
                        <option>Las Vegas</option>
                        <option>Salt Lake City</option>
                        <option>I'll Choose a Default Later...</option>
                    </select>
                </div>
            </div> <!-- end of city dropdown -->

            <div class="col-md-3 col-sm-6">
                <div class="form-group">
                    <label for="type-of-phone">Type of Phone:</label>
                    <select id="type-of-phone" class="form-control">
                        <option>iPhone</option>
                        <option>android</option>
                        <option>Windows Phone</option>
                        <option>Blackberry</option>
                        <option>Other Cellphone</option>
                        <option>Landline</option>
                    </select>
                </div>
            </div> <!-- end of Smartphone Question Dropdown -->
        </div> <!-- end of second .row of inputs -->
        <div class="row">
            <div class="col-md-12"><input type="submit" value="Submit"></div>
        </div>
    </form>

如果有人有任何想法,请告诉我。我正在拔头发。我想我会因为查询数据库或弄乱 AJAX 以使其完善的问题而彻夜难眠,但我什至无法通过提交 RAW 数据的表单!非常令人沮丧。我希望有人能看到这个问题。

作为记录,这是我在表单重定向到 signup1.php 后的确切消息(是的,它转到了正确的页面)。在 PHP 上,我所做的只是整个 $_POST 变量的 Var_dump。

var_dump($_POST);

它向我展示了这个:

array(0)   

【问题讨论】:

【参考方案1】:

您应该将 name 属性添加到表单字段。

例如:

<input name="phone" type="text" id="phone" class="form-control" placeholder="801-321-9876">

【讨论】:

F$%#ing 成功了!啊谢谢。我知道这将是这样简单的事情。我正在混合nameid。因此,您希望标签中的 For="" 与输入中的 name= 匹配。那么帖子必须使用name 作为数组。知道了。好吧,我再也不会犯那个错误了:)谢谢。它不会让我再选择 8 分钟的正确答案。我会尽快检查的。再次感谢。 没问题,伙计!实际上,标签的“for”属性应该对应于您希望将其绑定到的元素的 ID。再见,祝你好运:) 天哪!过去两天我一直在努力解决这个问题!我不敢相信我也让它发生了……有时这些小事就被忽视了。感谢@jacurtis 原来提交按钮也需要有一个name属性。 同上。只花了 3 小时想知道为什么表单不会发布。我用过“id=code”……但忘记了“name=code”部分!!所以谢谢【参考方案2】:

尝试将名称属性添加到每个输入标签和选择标签。应该这样做。

【讨论】:

【参考方案3】:

尝试为输入字段的每个字段命名,并为提交按钮提供名称。这样你的问题就迎刃而解了。

【讨论】:

【参考方案4】:

使用编辑过的脚本:

<form action="actions/signup1.php" method="post">
        <div class="row">
            <div class="col-md-6">
                <div class="form-group">
                    <label for="name">Name:</label>
                    <input type="text" id="name" name="name" class="form-control" placeholder="John Smith">
                </div>
            </div> <!-- end of name input column -->
            <div class="col-md-6">
                <div class="form-group">
                    <label for="phone">Phone Number:</label>
                    <input name="phone" type="text" id="phone" class="form-control" placeholder="801-321-9876">
                </div> 
            </div> <!-- end of phone number input column -->
        </div> <!-- end of first .row of inputs -->

        <div class="row">
            <div class="col-md-6 column-sm-12">
                <div class="form-group">
                    <label for="email">Email Address:</label>
                    <input type="text" name="email" id="email" class="form-control" placeholder="johnsmith@me.com">
                </div>
            </div> <!-- end of email address input column -->

            <div class="col-md-3 col-sm-6">
                <div class="form-group">
                    <label for="city">City:</label>
                    <select id="city" name="city" class="form-control">
                        <option>Las Vegas</option>
                        <option>Salt Lake City</option>
                        <option>I'll Choose a Default Later...</option>
                    </select>
                </div>
            </div> <!-- end of city dropdown -->

            <div class="col-md-3 col-sm-6">
                <div class="form-group">
                    <label for="type-of-phone">Type of Phone:</label>
                    <select id="type-of-phone" name="type-of-phone" class="form-control">
                        <option>iPhone</option>
                        <option>Android</option>
                        <option>Windows Phone</option>
                        <option>Blackberry</option>
                        <option>Other Cellphone</option>
                        <option>Landline</option>
                    </select>
                </div>
            </div> <!-- end of Smartphone Question Dropdown -->
        </div> <!-- end of second .row of inputs -->
        <div class="row">
            <div class="col-md-12"><input type="submit" value="Submit"></div>
        </div>
    </form>

输出:

【讨论】:

以上是关于简单表单不通过_POST发送数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章

$.post 不向 php 脚本发送数据

使用 HTTP POST 发送多行文本 [重复]

某些表单输入未通过 GET / POST 发送 [重复]

没有Web表单的PHP POST数据[重复]

空表单 POST 数据

如果 $_POST 值仍然相同,PHP 表单将拒绝发送