簡體   English   中英

用php處理動態生成的javascript表單到數據庫

[英]Processing a dynamically generated form in javascript with php post to database

我有一個包含動態生成的字段的表單。 提交的表單中可以有任意多個字段,具體取決於用戶添加了多少個字段。 這是一個JSFIDDLE,您可以參考它來了解我正在動態生成什么樣的字段。 鏈接到JSFIDDLE

這個JSFIDDLE和我的項目的唯一區別是,我不是在一組中生成2個下拉列表和2個輸入字段,而是在一組中生成3個下拉列表和1個輸入字段。 現在,用戶可以從jsfiddle的下拉列表中進行選擇,現在可以生成的集數最多為15。

需要知道的是,如果用戶生成了7套數據,我將如何知道每個字段的名稱,因為我必須使用PHP來處理此表單的數據並提交給數據庫。

看看這個 它在每個輸入的末尾添加了一個變量,因此您可以跟蹤輸入。

Edit1:名稱將是這樣,

第1行-輸入1_1,輸入2_1,輸入3_1,輸入4_1

第2行-輸入1_2,輸入2_2,輸入3_2,輸入4_2 ...等等

Edit2:jsfiddle刪除添加的最新行。

您的jQuery代碼已經明確命名了字段。 例如:

$("<input>").attr("name", "a").appendTo(newDiv);

這將創建一個名為輸入a

<input name="a" />

您的jQuery為每個動態創建的輸入賦予相同的名稱。 如果您提交具有3個具有相同名稱的字段的以下表單,則服務器將收到a=value1&a=value2&a=value3

<form>
    <input name="a" value="value1" />
    <input name="a" value="value2" />
    <input name="a" value="value3" />
    <input type="submit" />
</form>

這適用於大多數服務器技術,但不適用於PHP。 PHP用最后一個值覆蓋現有值。 因此,如果您檢查了PHP中a的值,則只會看到value3 但是,好消息是您可以稍微更改輸入名稱,並使PHP識別所有值。 在PHP中,當在輸入名稱后加上方括號( name="a"變為name="a[]" )時,PHP會將值解析為Array。 因此,對於以下略作修改的形式:

<form>
    <input name="a[]" value="value1" />
    <input name="a[]" value="value2" />
    <input name="a[]" value="value3" />
    <input type="submit" />
</form>

當您查看PHP中a的值時,將得到一個包含value1value2value3的值數組。 因此,只需將您的jQuery代碼更改為在名稱末尾使用方括號即可:

$("<input>").attr("name", "a[]").appendTo(newDiv);

暫無
暫無

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

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