簡體   English   中英

動態PHP / MySQL上傳表格

[英]Dynamic PHP / MySQL Upload Form

我正在嘗試構建一個動態PHP / MySQL上傳表單,其中可以動態添加或刪除數據字段,並且可以通過一個按鈕將所有這些數據上傳到數據庫。

這是可以添加和刪除的動態<textarea>元素的外觀:

    <form method="post" action="dynamicForm.php" enctype="multipart/form-data">

        <!--Dynamically Added Paragraphs Go Here-->

        <input type="submit" name="upload" value="Upload" id="upload">

    </form>

    <button onclick="addParagraph()">Add Paragraph</button>

<script>

    //add textarea div and associate "Remove" button
    function addParagraph(){
        $("form").append('<div><textarea name="paragraph"></textarea><button class="remove">Remove</button></div>');

   //remove added paragraph
   $(document).on('click', ".remove", function(e) {
   $(this).parent().remove();
   });

</script>

這是我可以使用的一些示例PHP:

if (isset($_POST['upload'])) {

    $db = mysqli_connect('','','','');

    $paragraph = $_POST['paragraph'];

    $sql = "INSERT INTO table (paragraph) VALUES ('$paragraph')";

    mysqli_query($db, $sql);

}

每個添加的段落都具有paragraph名稱。 如果有5個具有name paragraph元素,並且PHP代碼正在尋找具有name paragraph的元素,在這種情況下會發生什么? 是否上傳了所有數據,還是僅上傳了具有name paragraph一個元素? 會拋出錯誤嗎? 如果這樣不能上傳所有添加的段落,我如何才能讓PHP上傳所有段落?

編輯:可能的解決方案

<script>

//changed name value to array "paragraph[]"
function addParagraph(){
    $("form").append('<div><textarea name="paragraph[]"></textarea><button class="remove">Remove</button></div>');


</script>



if (isset($_POST['upload'])) {

    $db = mysqli_connect('','','','');

    $sql = "INSERT INTO table (paragraph) VALUES ('$paragraph')";

    $paragraph_array = $_POST['paragraph'];

    for ($i = 0; $i < count($paragraph_array); $i++){

        $paragraph = mysqli_real_escape_string($paragraph_array[$i]);

        mysqli_query($db, $sql);
    }

}

用戶單擊“上傳”按鈕后,即使存在多個具有相同名稱的輸入元素,所有輸入的數據也將被上傳。

另一方面,在服務器端,您只能訪問具有重復名稱的輸入元素中最后輸入的值。

如果要訪問所有值,則應為輸入元素提供不同的名稱,或者只需在重復名稱的末尾添加“ []”,然后在服務器端,您將獲得所有封裝在數組中的輸入值。

<?php var_dump($_POST);?>

array(2){[“ paragraph”] => array(4){[0] => string(2)“ t1” [1] => string(2)“ t2” [2] => string(2) “ t3” [3] =>字符串(2)“ t4”} [“上傳”] =>字符串(6)“上傳”}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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