【发布时间】:2014-01-29 05:47:24
【问题描述】:
我正在开发一个 CakePHP 应用程序。在我的应用程序中,页面有一个表单标签,里面没有元素。表单元素(输入等)是使用 JavaScript 动态创建的。因此,在某些事件之后,我创建了所需的元素并将它们附加到父节点。结果是一个包含元素的表单。
for (var i = 0; i < targets.length ; i++) {
var edt = document.createElement("input");
edt.setAttribute("type","text");
edt.setAttribute("id","edt_"+targets[i].id);
edt.setAttribute("name","edt_"+targets[i].id);
targets[i].innerHTML = "";
targets[i].appendChild(edt);
//Pushing newly created obj to array
objs.push(edt);
}
CakePHP 无法使用以下方法处理新创建的元素:
$global_1_user = $this->request->data['edt_1_user'];
$this->set('global_1_user',$global_1_user);
但是,如果我不动态创建元素并将它们包含在我的 HTML 代码中,CakePHP 可以很好地识别这些元素。任何人都可以帮助我吗?为什么会这样?我该如何克服这个问题?有没有其他方法可以实现这一点?
【问题讨论】:
-
很可能是安全组件阻止了对这些变量的访问。它可以对允许您通过应用程序传输的内容非常有选择性,并且有时可以仅仅因为 HTML 标记中可能存在语法错误而阻止变量。我建议您只使用普通的旧
$_POST或$_GET来访问这些作为解决方法
标签: javascript php html cakephp