Bootstrap:提交表数据

时间:2017-11-20 12:18:40

标签: php html twitter-bootstrap-3 html-table submit

我尝试进入bootstrap,因此我尝试构建一个包含某种 Content-Management-interaction 的网站。下面是一个表格,您可以在其中插入成分,这些成分应插入到MYSQL关系中。当我填写下表时会出现问题,因为表格 - 包裹在桌子周围 - 不会提交任何内容。

<form class="form-horizontal" id="ingredients" role="form" action="process_input.php" method="POST">
<table>
    <caption>insert ingredients</caption>
<thead>
  <tr>
    <th>Quantity</th>
    <th>Unit</th>
    <th>Name</th>
    <th></th>
  </tr>
</thead>
<tbody>
<tr>
<div class="form-group">
    <td><select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select></td>
    <td> <select id="opt1b" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="3">Litre</option>
        <option value="3">Cup</option>
        <option value="4">TS</option>
  </select></td>
    <td><input id="opt1c"></td>
    <td><input class="btn btn-primary" type="reset" value="Reset"></td>
</div>
</tr>

<tr>
<div class="form-group">
    <td><select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select></td>
    <td> <select id="opt1b" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="3">Litre</option>
        <option value="3">Cup</option>
        <option value="4">TS</option>
  </select></td>
    <td><input id="opt1c"></td>
    <td><input class="btn btn-primary" type="reset" value="Reset"></td>
</div>
</tr>

<tr>
<div class="form-group">
    <td><select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select></td>
    <td> <select id="opt1b" class="custom-select mb-2 mr-sm-2 mb-sm-0">
        <option selected>Choose</option>
        <option value="3">Litre</option>
        <option value="3">Cup</option>
        <option value="4">TS</option>
  </select></td>
    <td><input id="opt1c"></td>
    <td><input class="btn btn-primary" type="reset" value="Reset"></td>
</div>
</tr>
</tbody>
 <button class="btn btn-sucess">Send</button>

process_input.php 脚本非常简单。

<?php
print_r($_GET);
print_r($_POST);
?>

表格中的某些内容必定是错误的,因为提交后这两个数组仍为空。

编辑:感谢您的所有纠正。它现在有效。 stackoverflow社区非常快! :)

4 个答案:

答案 0 :(得分:1)

表中没有错。表用于制作用户可见的布局。

您正在使用$_GET$_POST全局变量在php中获取表单数据。

正如我可以看到输入字段,你没有在任何输入中给出属性name

<select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">

在上面的代码中,您缺少name属性。所以添加如下名称属性:

<select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0" name="selectbox">
                                                                 ^^^name can be your choice

注意:表单提交后,PHP全局变量$_GET$_POST保存带有输入字段名称的值。与上面的示例一样,该值将位于$_POST['selectbox']$_GET['selectbox']

因此,您必须为每个输入类型指定name属性。

答案 1 :(得分:1)

您提供的代码中的方法是POST。 当您在POST中明确提交时,为什么在PHP中使用GET?那是一点。

<form class="form-horizontal" id="ingredients" role="form" action="process_input.php" method="POST">

另一件事是你的提交按钮。您没有定义按钮的类型。它应该是'submit'类型。

<button class="btn btn-sucess" type="submit">Send</button>

您的选择元素缺少 name 属性,PHP正在使用该属性来唯一标识输入中的值。

<select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0" name="yourSelectName">

最后,由于您尝试通过POST获取值,请创建将保存每个选择框的POST值的变量。您可以按照以下示例进行操作:

<?php
$selectBox1 = $_POST['selectBox1'];
$selectBox2 = $_POST['selectBox2'];

echo $selectBox1 . " " $selectBox2;
?>

答案 2 :(得分:1)

表格不是问题,您只需设置输入名称属性name="opt1a"

<select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0" name="opt1a">

使用post方法,您可以通过该name属性获取此选择框值,例如

echo $_POST['opt1a'];

并通过提供类型属性

使您的按钮提交
<button type="submit" class="btn btn-sucess">Send</button>

并确保您的每个开放标记都有结束标记。 如果没有name属性,则无法在服务器端代码中获取任何输入字段值 我希望它有所帮助。

答案 3 :(得分:1)

在查看您的代码之后观察到您出错的几件事。

1) You Haven的封闭表格</form>

2)并且您将所有选择选项值null发送给PHP,即选择的第一个选项没有与之关联的值。所以最后发布显示一个空数组

<select id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">
<option value="0" selected>Choose</option>

3)为每个选择下拉列表指定不同的名称,以区分访问权限。

<select name="differentName" id="opt1a" class="custom-select mb-2 mr-sm-2 mb-sm-0">

4)表单操作应该是表单标记打开后的第一件事

<form action="process_input.php" class="form-horizontal" id="ingredients" role="form"   method="POST">