簡體   English   中英

$ _POST未知數量的元素

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM