2015-08-28 61 views
0

我从JavaScript值:如何将JavaScript变量传递给液体标记?

var customerID = document.getElementById("CustomerID").value; 

现在我想从模块的数据查询的名字,姓氏,基于这样的customerID变量。

{module_data resource="customers" version="v3" fields="id,firstName,lastName,titleType,customerTypeId,ratingTypeId" skip="0" limit="10" order="lastName" collection="selected-data"} 
    {% for item in selected-data.items %} 
    {% if item.id == 10393092%} 
    document.getElementById("CAT_Custom_15").setAttribute("value","{{item.titleType.label}}") ; 
    document.getElementById("CAT_Custom_14").setAttribute("value","{{item.firstName}}");       
    document.getElementById("CAT_Custom_4").setAttribute("value","{{item.lastName}}"); 
    {% endif %} 
    {% endfor %} 

我该如何写出where条件? 我在上面的代码中赋予10393092即时值。它工作正常。但我需要分配变量等于item.id(如item.id == customerID)。任何人都可以帮忙非常感谢你

回答

1

你所要求的是不可能的。 Liquid会生成一个静态页面,然后存储在您的Web服务器上。当用户导航到您的网站时,预生成的页面会发送给他们。然后其中的JavaScript可能会执行。此时,在Liquid中做任何事情都是不可能的。你应该寻找一个纯粹的JavaScript解决方案。

-1

不幸的是,你不能这样做。原因是液体在服务器端处理和页面加载时,从服务器中的内容(module_data)已经处理过,之后的DOM元素将你会被提取使用

var customerID = document.getElementById("CustomerID").value; 

从浏览器的DOM内容加载导致没有数据传递到液体if else的条件。 目前没有办法将JavaScript数据发送到服务器module_data