[英]Posting list of items from HTML form to PHP
我要达到的目的是要有一个不确定数量的输入字段(用户可以使用站点上的加号按钮添加其他输入字段)。 每个输入字段的ID /名称后面都会增加一个数字。 这已经可以正常工作了。
例:
<input type="text" name="field1" id="field1">
<input type="text" name="field2" id="field2">
<input type="text" name="field3" id="field3">
<button id="addanotherinputfield">+ Add new</button>
因此,从理论上讲,可能有200多个输入字段,最后一个是:
<input type="text" name="field200" id="field200">
我目前将其推为$ _POST(简化的代码):
<?php
$db = new PDO("mysql:host=localhost;dbname=$dbname", $dbtable, $dbpass);
$sdh = $db->prepare('INSERT INTO yeehaw (name,value) VALUES (:name,:value)');
if($_POST['field1'] !='') {
$name = 'field1';
$value = $_POST['field1'];
$sdh->bindParam(':name', $name);
$sdh->bindParam(':value', $value);
$sdh->execute();
}
if($_POST['field2'] !='') {
$name = 'field2';
$value = $_POST['field2'];
$sdh->bindParam(':name', $name);
$sdh->bindParam(':value', $value);
$sdh->execute();
}
if($_POST['field3'] !='') {
$name = 'field3';
$value = $_POST['field3'];
$sdh->bindParam(':name', $name);
$sdh->bindParam(':value', $value);
$sdh->execute();
}
$db = null;
?>
目前,它也正在工作。
但是出于明显的原因,这不是一种好的方法,因为它不可扩展(我必须在代码中添加每种情况,并且我希望清除不必要的代码)。 我已经用谷歌搜索了一下,似乎无法找到两个基本问题的答案(也许我正在寻找错误的术语/术语?):
任何指针/帮手非常感谢。
将HTML输入的name
属性设置为PHP的数组:
<input type="text" name="field[]" />
这样,字段将以数组形式发布,您可以轻松地遍历PHP中的每个字段。
foreach($_POST['field'] as field){
// handle input
}
为了使您的代码更具可伸缩性,减少冗余或重复性,我建议使用PDO动态和自动数据绑定,例如Github上列出的绑定,它在绑定多个数据时很有用,我已经使用了几次。 它为您完成了所有绑定,这是在GitHub上的链接https://github.com/JstMagic/dynamicPDO与Tiles结合使用答案
<input type="text" name="field[]" />
foreach($_POST['field'] as field){ // handle input }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.