php - Bootstrap 表单没有将值传递给 php

标签 php forms twitter-bootstrap

我不明白为什么没有将输入字段“名称”传递给 PHP。我尝试注释掉“名称”代码,但“公司”出现了同样的问题。我在两个输入标签上都设置了 id 和 name 属性。

已修订

website example

HTML

<form name="createAccount" role="form" method="POST" action="php/AddNewAccount.php" >
    <div data-toggle="buttons">
        <div class="btn-group">
            <label class="btn btn-primary">
                <input type="radio" name="user-type" id="writer" value="writer" class="sr-only" required >Writer
            </label>
            <label class="btn btn-primary">
                <input type="radio" name="user-type" id="enabler" value="enabler" class="sr-only" required>Enabler
            </label>
        </div>
    </div><br/>
    <div class="form-group">
        <label for="name">Name:</label>
        <input class="form-control" required id="name" name="name">
    </div>
    <div class="form-group">
        <label for="company">Company:</label>
        <input class="form-control" required id="company" name="company">
    </div>
...
</form>

PHP

function AddNewAccount() {
try {
    $acctType = $_POST["user-type"];
    if (!isset($acctType) || empty(trim($acctType))) {
        throw new Exception('You must select an account type."');       
    };
    echo "account-type=" . $acctType;
    $name = $_POST["name"];
    if (!isset($name) || empty(trim($name))) {
        throw new Exception('You must enter your name."');       
    };
    $company = $_POST["company"];
    if (!isset($company) || empty(trim($company))) {
        throw new Exception('You must enter your company name."');       
    };

...
}

错误

[03-May-2016 21:41:44 UTC] PHP Fatal error: Uncaught exception 'Exception' with message 'You must enter your company name."' in /home/deje/public_html/writers-tryst/php/AddNewAccount.php:18

请注意“用户类型”已正确传递。

最佳答案

据我所见;你的代码应该可以工作......不过我没有发现任何错误。但是,为什么您的异常消息中有一个额外的 (") ?您是否在页面上使用了任何 Javascript?如果是;我建议您暂时禁用 Javascript 并尝试再次发送表单而不用JS.

你能试试这个吗?

function AddNewAccount() {
    // IT MIGHT BE A GOOD IDEA (IF YOU WILL) TO DUMP THE ENTIRE $_POST GLOBAL VARIABLE
    // AND END THE SCRIPT...(TEMPORARILY)... JUST TO SEE WHAT COMES BACK
    // var_dump($_POST); exit; // BYPASSTHE DUMPING SINCE WE ARE SURE COMPANY MAKES IT THROUGH TO THIS POINT...
    try {
        $name      = isset($_POST["name"])      ?  htmlspecialchars(trim($_POST["name"]))       : null;
        $company   = isset($_POST["company"])   ?  htmlspecialchars(trim($_POST["company"]))    : null;
        $acctType  = isset($_POST["user-type"]) ?  htmlspecialchars(trim($_POST["user-type"]))  : null;

        if (!$acctType) {
            throw new Exception('You must select an account type.');       
        }

        if (!$name) {
            throw new Exception('You must enter your name.');       
        }

        if (!$company) {
            throw new Exception('You must enter your company name.');       
        }

...
}

这是您应用中 var_dump($_POST) 的结果。

enter image description here

如您所见,您的代码仍然是一致的,现在您的数据列表中有公司....所以您可能想要注释掉 var_dump();导出;部分

<?php
    //....PREVIOUS CODE
    // var_dump($_POST); exit; //NOW COMMENTED OUT TO CONTINUE WITH THE PROGRAM

试试这个,让我们知道它是怎么回事...... 不过,我真诚地希望你一切顺利 现在 ;-)

关于php - Bootstrap 表单没有将值传递给 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015047/

相关文章:

php - 这是使用 PHP 更新/插入记录的正确方法吗?

PHP OOP 设计模式 : Should I Create two separate classes for registration and form validation?

javascript - 使用 jQuery 的 $.ajax 异步更新 Bootstrap 进度条

html - Bootstrap 中行内的多列在 IE 11 中不起作用

php - 我的php表单未检查在表单中输入的电子邮件是否有效

javascript - 为什么当我实现 ZF2 ACL 时 javascript 停止工作?

php - 遍历 Doctrine 的 changeSet

php - 无法显示简单的面向对象的行数

php - 为什么 codeigniter 没有记录错误!

php - 扩展类是否有 __construct() 等价物