[英]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.