我有基于用户的创建行。当您单击“添加新行”时,会克隆并附加一些内容。
每个克隆的内容都有自己的文本区域,每一行都有一个行键。
<input type="hidden" name="rowkey" value="0">
我使用 jQuery 重写 rowkey 值以匹配.each()
创建的行。
ajax 帖子的最终结果是每行都有一个新的 ajax 请求。ajax 帖子看起来像这样
rowkey: 0
application[rows][0][elements][html]: Some HTML here
另一个新行的ajax请求
rowkey: 1
application[rows][1][elements][html]: Some More HTML here
如果创建了另一行,则为另一个
rowkey: 2
application[rows][2][elements][html]: Some More More HTML here
我以前使用过这种方法,但现在在 wordpress 中使用update_post_meta
它只使用最后一个 ajax 请求更新wp_postmeta
表,在这种情况下,rowkey: 2
如上所述。通常我可以把它放到一个数组中。
这里是update_post_meta
$application['rows'][$_POST['rowkey']] = $_POST['application']['rows'][$_POST['rowkey']];
$application = esc_sql(json_encode($application));
// Update the post's meta field
update_post_meta($post_id, 'MY_DATABASE', $application);
注意:这是在函数内部,$post_id
用作参数没有问题,只是将所有 ajax post 值放入数据库,而不是最后一个。只是把它扔在那里我记得使用ARRAY_A
不确定这是否相关。
数据库表meta_value
看起来像这样
"rows":{"1":{"elements":{"html":"2"}}}
什么时候应该是这样的:不太确定这是否 100% 准确,但看起来应该相似
"rows":{"1":{"elements":{"html":"1"}}, {"2":{"elements":{"html":"2"}}, {"3":{"elements":{"html":"3"}} }
最后一句话:我希望这足够清楚,而且不会太长。我真的可以在这里使用帮助。我很乐意提供更多信息,我真的很想弄清楚这一点。您需要的任何信息都可以询问。