Ajax Cakephp:在视图页面上添加另一个视图页面链接

Ajax Cakephp:在视图页面上添加另一个视图页面链接,ajax,cakephp,cakephp-2.0,cakephp-2.1,Ajax,Cakephp,Cakephp 2.0,Cakephp 2.1,很抱歉问这个问题。我正在开发一个Cakephp 2.x。。。我的控制器名称文件夹中有一个查看页面,例如控制器/index.ctp。。。我有ajaxfile文件存储在app/webroot/ajax/ajaxfile.html中 现在,在我的index.php文件中,我正在访问ajax页面,如下所示 <a href="ajax-demo/ajaxfile.html" class="file-link">

很抱歉问这个问题。我正在开发一个Cakephp 2.x。。。我的控制器名称文件夹中有一个查看页面,例如控制器/index.ctp。。。我有ajaxfile文件存储在app/webroot/ajax/ajaxfile.html中

现在,在我的index.php文件中,我正在访问ajax页面,如下所示

                <a href="ajax-demo/ajaxfile.html" class="file-link">
                                    <span class="icon file-png"></span>
                                    Simple gallery</a>
现在的问题是我想把变量发送到我的两个页面。。。index.ctp和ajaxfile。。。我该怎么做?解决这些问题的最佳方法是什么

我是否必须将AjaxFile从webroot移动并粘贴到controller name文件夹下? 如果是这样,那么如何将变量发送到没有模型和控制器的ajax文件


如果有人知道答案,请告诉我。再举个例子

实现这一点有不同的方法,这里我写的是最简单的一个

首先,您需要将“index.ctp”文件移动到“View/your CONTROLLER NAME/”文件夹中

1) 要访问视图中的变量,需要从控制器的方法进行如下设置

public index(){
   $this->set('yourVariable', 'Your Value');
}
 $yourVariable;//If you want to print this then you can write like this 
 echo $yourVariable;
2) 要访问视图文件(index.ctp)中的值,需要如下调用此变量

public index(){
   $this->set('yourVariable', 'Your Value');
}
 $yourVariable;//If you want to print this then you can write like this 
 echo $yourVariable;
3) 要从index.ctp调用ajax文件,最简单的方法是在此锚点上调用onclick事件,onclick事件将调用JAVASCRIPT方法,该方法将进一步进行ajax调用,并将输出放入index.ctp中的元素中,ajax调用将进一步调用控制器方法(在此处实现html相关逻辑)

比如说,

<a href="#" class="file-link" onclick="yourAjaxCallMethod('http://'.<?php echo $_SERVER['HTTP_HOST'].$this->webroot;?>.'yourController/ajaxMethod/'.<?php echo $yourVariable;?>)"><span class="icon file-png"></span>Simple gallery</a>

 <div id="yourAjaxFileOutputReplaceMentDiv"></div>
5) 控制器“yourController”中与AJAX文件相关的方法。将autoRender设置为False

public function ajaxMethod(){

 $this->autoRender = false;
 //Check $this->request['pass'] for arguments send from ajax call
 $retreivedVariable =  $this->request['pass'][0];
 echo 'I retrieved variable'.$retreivedVariable;     
}

但是,您不必编写核心javascript和ajax方法,而可以调用inbuild ajax Helper来实现同样的功能。

您不能将变量传递到html文件。您必须为其创建ctp。并通过控制器中定义的适当方法传递。感谢您让我知道谢谢您的详细回答。。但是我认为arun是对的。我必须制作函数和所有的东西…是的,如果你仔细阅读答案,你会发现一些东西是控制器的方法,比如index.ctp是控制器中的方法,即index(),你的ajax相关文件只是控制器中没有视图的方法(.ctp文件)这会破坏你的内容。要以更严格的方式实现它,请使用元素来呈现HTML部分。您可以将变量从视图(.ctp)文件传递给元素