【问题标题】:Html form from php array来自php数组的HTML表单
【发布时间】:2016-11-20 17:19:04
【问题描述】:

我想从 php 数组中显示一个 html 表单。我希望(名字)输入和(姓氏)输入在一行中。我使用了引导行类,但它将两个输入都放在单独的行中,例如

        <div class="row">first name </div>
        <div class="row">Last name </div>

如果有人能帮我解决这个问题,我将不胜感激!

    <?php

        $form = array(

                    'fname' => array(
                        'title' => 'First Name',
                        'type' => 'text',
                        'size' => '50',
                    ),

                    'lname' => array(
                        'title' => 'Last Name',
                        'type' => 'text',
                        'size' => '50',
                    ),

        'email' => array(
                        'title' => 'Email',
                        'type' => 'email',
                        'class' => 'form-control',
                        'size' => '50',

                    ),
        'submit' => array(
                        'title' => 'Register',
                        'type' => 'submit',
                        'size' => '50',
                        'class' => 'form-control',

                    ),
        )

           ?>

        <form action="" method="post">
    <?php

        foreach ($contact_form as $name => $elements) {

            $label = '<label>' . $elements['title'] . '</label><br>';

            if ($elements['type'] == 'text') {

                echo '<div class="row">';
                echo $label . '<input  type="' . $elements['type'] . '" name="' . $name . '"  size="' . $elements['size'] . '" >';
                echo '</div>';

            } elseif ($elements['type'] == 'email') {
                echo '<div class="row">';
                echo $label . '<input type="' . $elements['type'] . '" name="' . $name . '"   size="' . $elements['size'] . '">' . form_error($name) . '<br>';
                echo '</div>';

            }else{

                echo '<input type="' . $elements['type'] . '" name="' . $name . '" value="' . $elements['title'] . '"  size="' . $elements['size'] . '">'  ;
            }
        }
    ?>
</form>

【问题讨论】:

  • “我使用了引导行类,但它在单独的行中对两个输入进行 rap” 那么您希望 row 类做什么?您需要使用列getbootstrap.com/css/#grid
  • 我希望两个输入在一行而不是单独的行
  • 我刚刚编辑了表单同样的结果
  • 正如我之前所说的:你需要使用列。阅读文档getbootstrap.com/css/#grid

标签: php arrays twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

更新您的 PHP 数组以使用 Bootstrap 大小而不是百分比。我还做了一些其他的调整...

$form = [
    [
        'title' => 'First Name',
        'name' => 'first_name',
        'type' => 'text',
        'cols' => '6',
    ],
    [
        'title' => 'Last Name',
        'name' => 'last_name',
        'type' => 'text',
        'cols' => '6',
    ],
    [
        'title' => 'Email',
        'name' => 'email',
        'type' => 'email',
        'cols' => '6',
    ],
    [
        'title' => 'Register',
        'type' => 'submit',
        'cols' => '6',
    ],
]

然后您可以使用该数据通过 foreach 循环创建表单,

<div class="container">
  <form class="form-horizontal">

    <?php foreach ($form as $element): ?>

      <div class="col-sm-<?= $element['cols'] ?>">

        <?php if ($element['type'] == 'submit): ?>

          <button type="submit" class="btn btn-default"><?= $element['title'] ?></button>

        <?php else: ?>

          <div class="form-group">
            <label for="<?= $element['name'] ?>" class="col-sm-4 control-label"><?= $element['title'] ?></label>
            <div class="col-sm-8">
              <input type="<?= $element['type'] ?>" class="form-control" id="<?= $element['name'] ?>" name="<?= $element['name'] ?>">
            </div>
          </div>

        <?php endif; ?>

      </div>

    <?php endforeach; ?>

  </form>
</div>  

没有经过测试,但应该不会太远......

【讨论】:

  • 你好史蒂夫!我在没有 php foreach 循环的情况下试过这个,它工作正常,但是当我使用循环时它分成两行。
  • 重写答案。
  • 感谢史蒂夫一百万!
  • 不客气。如果它回答了您的问题,请不要忘记接受我的回答!
【解决方案2】:

您可以按条件管理。

            foreach ($form as $name => $elements) {
            if($name != 'lname'){
            echo '<div class="row">'; 
            }
            // Code here
            if($name != 'lname'){
            echo "</div>"; 
            }

}

【讨论】:

    猜你喜欢
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2019-09-03
    • 2023-03-28
    • 2023-03-15
    • 1970-01-01
    相关资源
    最近更新 更多