我尝试进入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社区非常快! :)
答案 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">