这有点复杂,我希望我说对了
我有一个表格, 包含一个选项列表, 从一个静态输入开始 :
<span id="keyword_list_out" class="input"><input class="keys margin-bottom" type="text" name="keywords[]" />
当页面被装入时, Ajax 调用显示属于列表的额外输入字段,例如:
<span class="field-wrapper"><input class="keys" type="text" name="keywords[]" value="Option One" /><a class="remove-keyword" href="javascript:void(0);"><img src="images/icons/cross-button-icon.png" /></a></span>
<span class="field-wrapper"><input class="keys" type="text" name="keywords[]" value="Option Two" /><a class="remove-keyword" href="javascript:void(0);"><img src="images/icons/cross-button-icon.png" /></a></span>
这些选项被预设到第一个静态输入字段 ID: keyword_list_out 的顶端。
用户可以动态地添加更多的输入字段,还可以删除现有的字段。
到目前为止,所有这一切都很好。我的问题是访问输入字段中包含的数据。我需要能够在提交表格后履行三项功能:
- If the user has removed an option I need to remove this from the database
- If the user has added a field I need to insert this into the database
- If the user changes the value of an existing field I need to update this in the database
我可以用输入名关键字_ name[] 作为数组, 访问输入字段中的数据, 然后我就可以绕过数组 。
但是,此选项并不处理有特定 ID 编号的现有选项。 我可以为从 Ajax 调用中装入的字段指定 ID 编号, 但是静态字段和用户添加的字段不会有 ID 编号, 因为不需要这些编号。 这些字段将直接插入数据库 。
所以我猜我想我的问题是 我如何去决定 哪些现有选项属于数据库的 ID 编号。我应该补充一下,这些选项并非唯一的名字。
我考虑过一些东西,比如:
- Provide ID numbers only for the Ajax loaded fields
- Upon submit loop through each input and prepend the ID to the end of the name value using a delimiter the user wont provide. IE: Option Two---1
- With PHP looping through the array and exploding the array value where it matches ---
- If a match was found on --- update the database, else insert into the database
有什么想法吗?
最新更新
我将输入字段分为两个数组:现有_options[]和新_options[]。
在张贴前的Jquery脚本中,
var existing_options = $( input[name=existing_options] ).attr( value );
var new_options = $( input[name=new_options] ).attr( value );
发送的 Ajax 数据为 :
existing_options[]= + existing_options + &new_options[]= + new_options;
然而, PHP 正在返回这些值是字符串而不是数组。 这里缺少一些... 。 @ info: whatsthis