Wix中如何将登录会员ID插入CMS且不重复创建数据项
解决Wix CMS中会员ID与表单数据合并提交的问题
问题描述
尝试将当前登录会员ID插入Wix CMS时,找不到无代码实现方式。用代码单独插入会员ID时,由于其他表单数据是通过无代码绑定输入框提交,导致会员ID和表单数据分别创建两条数据,无法一次性提交所有内容。当前用于插入会员ID的代码如下:
export function buttonSubmit_click(event) { currentMember.getMember() .then(member => { if (member) { const userId = member._id; const toInsert = { "userId": userId }; wixData.insert("Empresas1", toInsert) .then(result => { console.log("Item inserido com sucesso:", result); }) .catch(err => { console.error("Erro ao inserir o item:", err); }); } else { console.log("Nenhum membro logado."); } }) .catch(err => { console.error("Erro ao obter o membro:", err); }); }
解决方案
要实现会员ID和表单数据一次性提交,需取消无代码的自动提交绑定,改用代码统一收集表单输入值+会员ID,再一次性插入数据库。具体步骤如下:
移除无代码提交绑定
进入Wix编辑器,找到绑定到Empresas1数据库的输入框,取消它们的“提交到数据库”关联设置,避免无代码逻辑自动创建数据项。修改提交按钮代码,统一收集数据
通过代码获取每个输入框的当前值,结合会员ID组装成完整的数据对象后,调用wixData.insert一次性提交。示例代码如下:
import { currentMember } from 'wix-members'; import wixData from 'wix-data'; export function buttonSubmit_click(event) { // 获取当前登录会员ID currentMember.getMember() .then(member => { if (!member) { console.log("Nenhum membro logado."); return; } const userId = member._id; // 获取表单输入框的值(替换为你实际的输入框ID) const empresaNome = $w("#inputEmpresaNome").value; const empresaEmail = $w("#inputEmpresaEmail").value; // 按需添加其他输入框的值 // 组装完整的数据对象(字段名需与数据库对应) const fullData = { "userId": userId, "nome": empresaNome, "email": empresaEmail // 添加其他表单字段对应的键值对 }; // 一次性插入数据库 return wixData.insert("Empresas1", fullData); }) .then(result => { console.log("Dados inseridos com sucesso:", result); // 可选:提交成功后重置表单 $w("#inputEmpresaNome").value = ""; $w("#inputEmpresaEmail").value = ""; }) .catch(err => { console.error("Erro ao inserir dados:", err); }); }
- 注意事项
- 确保代码中使用的输入框ID(如
#inputEmpresaNome)和数据库字段名(如nome)与实际配置完全一致。 - 若需表单验证,可在获取输入值后添加验证逻辑,验证通过再执行插入操作。
- 确保代码中使用的输入框ID(如
内容的提问来源于stack exchange,提问作者João Pedro Cyrillo
相关产品推荐
相关产品推荐

