如何从视图中调用组件中的函数? (ctp文件)
我正在使用这样的东西:
App::import('Component', 'YourComponent');
$theComponent = new YourComponent();
$theComponent->yourMethod();
我想在按钮点击时执行行$theComponent->yourMethod();
,而是在页面加载时执行...
这是代码的一部分:
<script type="text/javascript">
function assign()
{
var links_list = [];
var links =document.getElementById('unassignedUsers').getElementsByTagName('a');
for(var a in links) {
if(typeof links[a] == undefined) continue;
links_list.push(links[a].innerHTML);} var str =links_list.toString();
var array = str.split(',');
alert(array);
}
<?php App::import('Model', 'Account');
$account = new Account();
$account->insertPos();?>
}
<button id="button" name="button" onClick="assign();"> Save Changes </button>
//this is the button i need the function to be executed when i click....
请告诉我该怎么办只有在点击按钮时才能执行javascript中的php代码?
答案 0 :(得分:0)
echo $form->create('Account', array('action' => 'insertPos'));
echo $form->button('Save Changes', array('type' => 'submit'));
echo $form->end();
答案 1 :(得分:0)
cakephp和互联网都在特定的架构上工作。使用Cakephp,更容易“打破”架构并创建工作,在互联网上非常困难。互联网使用客户端 - 服务器架构,其中HTML,Javascript和CSS在客户端工作,也称为浏览器和php(以及其他语言)在服务器端运行。在加载HTTPRequests(最简单的是AJAX)之后,服务器仅与客户端交互。只有HTTPRequest才会触发服务器端运行,并且始终通过URL完成。因此,以下是您应该遵循的粗略模型。
客户端&lt; ---- HTTPRequest ----&gt;服务器侧
鉴于此并与Cakephp合作,为了遵循最佳实践并从Cakephp获得最大收益,您的保存请求应发送到具有以下URL的控制器:
www.yoursite.com/controller-name/save
从这里开始,假设所有值都在表单元素中,您的控制器将仅在表单元素中发送值。然后在控制器内应该发生以下情况
$this->Account->insertPos();
最佳建议,如果您想让您的网站充满活力。熟悉AJAX。