我正在开发 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 就可以很好地识别这些元素。任何人都可以帮助我吗?为什么会这样?我该如何克服这个问题?有没有其他方法可以实现这一目标?
最佳答案
您误解了 PHP 和 JavaScript 的工作原理。 PHP 代码永远无法“看到”JavaScript 代码(包括 jQuery)的结果,因为 PHP 运行在服务器上,而 JavaScript 运行在浏览器中。当 JavaScript 开始运行时,服务器已完成 PHP。
如果您真的需要在 JavaScript 运行后使用 PHP 执行某些操作,您可以使用 AJAX 执行此操作。
关于javascript - PHP (CakePHP) - 识别由 JavaScript 创建的表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21267637/