我在表格中输入了表格。一行显示汽车的详细信息,在其下面有另一行,其中有5个输入用于更新详细信息。
当我填写第一辆车的输入并进行POST时,它没有取字段中的值。 但是,当我填写第二辆车的输入时,它确实采用了这些值。
只有第二辆车的输入采用POST方式发送。
这可能是HTML语法错误,但我找不到它。
这就是我检查POST的方式:
if (isset($_POST["Name_OF_Input"]) && count($_POST) > 0){code for updating the car details in DB};
HTML code:
<form action='main.php' method='POST'>
<table class='table table-striped'>
<tr>
<th style='width:252px'>Car ID</th>
<th style='width:185px'>Car Color</th>
<th style='width:260px'>Car Manufactuer</th>
<th style='width:252px'>Model</th>
<th style='width:253px'>Year</th>
<th style='width:147px'>Options</th>
</tr>
<tr>
<td>65-842-99</td>
<td>#ff0000</td>
<td>Dacia</td>
<td>Albero</td>
<td>2015</td>
<td><button class='btn btn-primary glyphicon glyphicon-pencil' value='65-842-99' onclick='show(this);return false;'></button></td>
</tr>
<tr value='65-842-99' id='65-842-99'>
<td><input type='text' name='id' placeholder='Car ID'></td>
<td><label>Car Color:</label><input type='color' name='color'></td>
<td><select name='manufacturer'>
<option value=''>Pick car manufacturer</option>
<option value='Fiat'>Fiat</option>
<option value='Mercedes'>Mercedes</option>
<option value='Audi'>Audi</option>
<option value='Volkswagen'>Volkswagen</option>
<option value='Mazda'>Mazda</option>
<option value='Honda'>Honda</option>
<option value='Dacia'>Dacia</option>
<option value='Lincoln'>Lincoln</option>
<option value='Volvo'>Volvo</option>
</select></td>
<td><input type='text' name='model' placeholder='Car Model'></td>
<td><input type='text' name='year' placeholder='Car Year'></td>
<td><button type='submit' class='btn btn-info glyphicon glyphicon-floppy-disk' name='carID' value='65-842-99'></button></td>
</tr>
<tr>
<td>66-815-55</td>
<td>#0080ff</td>
<td>Volkswagen</td>
<td>Golf</td>
<td>2000</td>
<td><button class='btn btn-primary glyphicon glyphicon-pencil' value='66-815-55' onclick='show(this);return false;'></button></td>
</tr>
<tr value='66-815-55' id='66-815-55'>
<td><input type='text' name='id' placeholder='Car ID'></td>
<td><label>Car Color:</label><input type='color' name='color'></td>
<td><select name='manufacturer'>
<option value=''>Pick car manufacturer</option>
<option value='Fiat'>Fiat</option>
<option value='Mercedes'>Mercedes</option>
<option value='Audi'>Audi</option>
<option value='Volkswagen'>Volkswagen</option>
<option value='Mazda'>Mazda</option>
<option value='Honda'>Honda</option>
<option value='Dacia'>Dacia</option>
<option value='Lincoln'>Lincoln</option>
<option value='Volvo'>Volvo</option>
</select></td>
<td><input type='text' name='model' placeholder='Car Model'></td>
<td><input type='text' name='year' placeholder='Car Year'></td>
<td><button type='submit' class='btn btn-info glyphicon glyphicon-floppy-disk' name='carID' value='66-815-55'></button></td>
</tr>
</table>
</form>
答案 0 :(得分:3)
您不能使用多个字段的相同名称。
您可以使用数组
<td><input type='text' name='model[]' placeholder='Car Model'></td>
<td><input type='text' name='year[]' placeholder='Car Year'></td>
在PHP方面,您可以获取值:
$_POST['model'] // this will be an array
$_POST['year'] // this will be an array
答案 1 :(得分:0)
当您有多个具有相同名称的输入时,浏览器会将它们全部发送到服务器(按顺序)。
但是,PHP会丢弃除最后一个之外的所有内容,除非名称以[]
结尾,在这种情况下,它会将一组值插入$_POST
。
更改名称以包含[]
以及循环数组的逻辑。
<input type='text' name='model[]' placeholder='Car Model'>