【问题标题】:How to convert javascritp code used in html forms using return or output in Zapier?如何使用 Zapier 中的返回或输出转换 html 表单中使用的 javascript 代码?
【发布时间】:2018-07-05 23:42:03
【问题描述】:

我从不在 Zapier 编码,所以我在这里有点盲目。对我来说,对于经验丰富的编码人员来说微不足道的事情仍然是一个挑战。所以我需要帮助,因为我是这种知识的傻瓜。 :-(

我在 Manychat 中创建了一个触发器来触发 zap 并将身高和体重传递给 Zapier。

之后,我创建了一个操作 Run Javascript 并进行测试,我传递了 weight = 81 和 height= 175 的值

我使用我在互联网上找到的一个javascript代码来计算人体BMI,但我仍然不明白如何定义函数来输出结果。

我需要接收 BMI 值和有关此结果的文本,但我现在知道如何使用 Zapier 中使用的输出的返回值来编写和传递这些值。

// Calculate BMI
function getBMImsg(bmi) {
  var bmiTable = [{bmi: 10,   msg: "você deve esta com inanição"}, 
                  {bmi: 15,   msg: "você está muito abaixo do peso"}, 
                  {bmi: 18.5, msg: "você está um pouco abaixo do peso ideal"}, 
                  {bmi: 25,   msg: "você está saudável!"}, 
                  {bmi: 30,   msg: "você está acima do peso ideal"}, 
                  {bmi: 40,   msg: "você está obeso!"}, 
                  {bmi: 50,   msg: "você está com obesidade mórbida!"}];
  var i;
  var text = bmiTable[0].msg;
  for (i = 0; i < bmiTable.length; i++) {
    if (bmi < bmiTable[i].bmi) {
      text = bmiTable[i].msg;
      break;
    }
  }
  return text;
}

function calcBMI(height, weight) {
  var bmi = 0;
  if (height > 0 && weight > 0) {
    bmi = Math.round((weight / Math.pow(height/100, 2)) * 10) / 10;
  }
  return bmi;
}

function bmiFunction() {
  var height = document.getElementById('height');
  var weight = document.getElementById('weight');
  var output = document.getElementById('output');
  var result = document.getElementById('result');
  var bmi = calcBMI(height.value, weight.value);

  if (bmi > 0) {
    output.textContent = bmi.toPrecision(3);
    result.textContent = getBMImsg(bmi)
  }
}
//document.getElementById("bmiform").addEventListener("submit", bmiFunction);
output = {bmiResult: bmiFunction}; //my wrong test to pass values

我不知道如何使用返回或输出来格式化或传递结果。这是我的问题。在这段代码中,Zapier 没有出现错误,但 id 显示了奇怪的字符,而不是我想传递给 Manychat 的 bmi 文本消息。

请教我怎么做。

非常感谢!

马可·奎里尼

【问题讨论】:

    标签: javascript html zapier


    【解决方案1】:

    就像我之前说的,任何包含document的代码都不会在 Node.js 中运行。即使此代码在您从中提取的浏览器中运行,您也需要针对 Node 环境对其进行调整。

    一些快速修复:

    • var height = document.getElementById('height'); 应该改为 inputData.height(或者您映射它的方式。

    • bmiFunction中,需要将结果存储在output对象上:

      if (bmi > 0) {
        output.bmi = bmi.toPrecision(3);
        output.message = getBMImsg(bmi)
      }
      
    • 对于您的输出,您返回的是一个函数,这不是您想要的。假设你的其他函数是正确的,“顶层”(所有函数之外)应该只是:bmiFunction(),它将调用上述函数并设置output变量中的值。

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 2022-01-15
      • 2020-01-30
      • 1970-01-01
      • 2021-10-03
      • 1970-01-01
      • 2017-09-22
      • 2021-05-06
      • 2017-11-19
      相关资源
      最近更新 更多