[英]$_POST unknown amount of elements
我的想法就像網上商店的籃子。
我有一個填寫到表單中的項目列表,如:
<?php while($info=msqli_fetch_array($query)){ ?>
<Input type="text" id="someid1" value="<?php echo $info['info']; ?>">
<Input type="Checkbox" id="checkid1" value="1">
<Input type="Checkbox" id="checkid2" value="2">
<?php } ?>
我想使用POST進行提交。 在每一行的下一頁上應該這樣做:
MYSQLI查詢
INSERT into booking (text,variable1,variable2)
VALUES ('$_POST['someid1']','$_POST['checkid1']','$_POST['checkid2']';
這有解決方案嗎?
您可以使用括號設置命名輸入,以將結果作為陣列服務器端獲取。 例如:
<input type="text" name="fruits[1]" value="apple" />
<input type="text" name="fruits[2]" value="orange" />
在服務器端:
<?php
print_r($_POST['fruits']);
?>
array(
1 => 'apple',
2 => 'orange',
)
這解決了這個問題。 但是你的代碼提出了一些應該真正解決的問題。
如果只是將$_POST
變量轉儲到查詢中,則需要SQL注入。 使用PHP的PDO功能並參數化您的輸入。 請查看PHP PDO准備語句答案中的第二個示例以獲取更多信息。
你可以使用foreach但是你不想做你想做的事情。
您應該在html中使用數組,然后在$_POST
數組中獲得相應的數組。 請注意,您需要name屬性:
<input name="someid[<?php echo $info['id']; ?>]" id="someid1" value="<?php echo $info['info']; ?>">
<input name="checkid[<?php echo $info['id']; ?>]" id="checkid1" value="1">
// etc.
現在$_POST['someid']
等將是你可以循環的數組。
請注意,您需要使用預准備語句將信息存儲在數據庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.