【发布时间】:2013-08-14 15:31:24
【问题描述】:
我被以下代码卡住了,希望有人可以帮助或给我一些建议: 基本上我正在做的是使用ajax调用一个cf函数:当用户在“artid”字段中写一个id时 与该 id 相关的信息将出现在其他 cfinput 中。上面的代码工作正常。
<cfajaxproxy bind="cfc:portal_dgmu.pruebas.addPerson.test.getData({artid@keyup})" onsuccess="showData">
<script>
function showData(d) {
var data = {}
for(var i=0; i < d.COLUMNS.length; i++) {
data[d.COLUMNS[i]] = d.DATA[0][i]
}
document.getElementById('artname').value = data["ARTNAME"]
document.getElementById('description').value = data["DESCRIPTION"]
document.getElementById('price').value = data["PRIZE"]
}
</script>
<html>
<cfform>
id: <cfinput type="text" name="artid" id="artid"><br/>
nombre: <cfinput type="text" name="artname" id="artname" readonly="true"><br/>
descripcion: <cftextarea name="description" id="description" readonly="true"></cftextarea><br/>
precio: <cfinput type="text" name="price" id="price" readonly="true"><br/>
</cfform>
</html>
我也有以下代码:
<script>
function addFields(){
var number = document.getElementById("member").value;
var container = document.getElementById("container");
while (container.hasChildNodes()) {
container.removeChild(container.lastChild);
}
for (i=0;i<number;i++){
container.appendChild(document.createTextNode(i+1));
var input = document.createElement("input");
input.type = "text";
input.name = "member" + i;
var boton = document.createElement("input");
boton.name = "boton" + i;
container.appendChild(input);
container.appendChild(boton);
container.appendChild(document.createElement("br"));
}
}
</script>
<html>
Enter a number of persons: (max. 10)<input type="text" id="member" size="3" name="member" value="">
<a href="#" id="filldetails" onclick="addFields()">Agregar</a>
<div id="container"/>
</html>
上面的代码只是根据用户输入的数字添加文本字段,它也可以正常工作。
我的问题是我无法弄清楚如何整合它们,我的意思是我需要做的是取决于用户输入的数字是部署文本字段,第一个必须输入一个 id将带来与该 ID 相关的数据。
非常感谢!!
【问题讨论】:
-
帮自己一个忙……停止使用
<cfajaxproxy>和cfform>(以及ColdFUsion 中的任何其他客户端幻灯片功能)。撕掉所有这些东西,并学习如何使用 jQuery 或其他一些 JavaScript 库在 JavaScript 中做到这一点。 ColdFusion 客户端的东西并不像它需要的那样健壮,您可能会遇到问题。 -
第二。特别是如果你现在才开始使用这些东西(而不是做遗留维护的东西),那就停下来,使用 HTML 和一个像样的 JS UI 库。 ColdFusion UI 的东西除了概念证明和 Adobe 向 IT 经理出售 CF 许可证外,并不适合任何其他用途。
-
感谢您的建议,我从未使用过 cfajaxproxy 我这样做是因为我发现它很容易,您能否告诉我一些与我需要的相关的教程或示例,我将不胜感激,我我没时间解决这个问题了。
-
考虑到您在此问题上寻求帮助,我认为您的断言
cfajaxproxy很“简单”。这是开始学习 jQuery 及其 .ajax() 方法的好地方。 - api.jquery.com/jQuery.ajax -
@user2683052 - 如果我正确理解了目标,它涉及到动态绑定到 动态 添加的表单字段。在这种情况下,您可能无论如何都无法使用 cfjaxproxy。
标签: javascript ajax coldfusion cfajaxproxy