Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将Javascript文件链接到Zend中的模型文件夹_Php_Javascript_Zend Framework - Fatal编程技术网

Php 如何将Javascript文件链接到Zend中的模型文件夹

Php 如何将Javascript文件链接到Zend中的模型文件夹,php,javascript,zend-framework,Php,Javascript,Zend Framework,好的,我得到了这个Javascript文件,很简单: $(document).ready(function() { $('.status').prepend("<div class='score_this'>(<a href='#'>score this item</a>)</div>"); $('.score_this').click(function(){ $(this).slideUp(); r

好的,我得到了这个Javascript文件,很简单:

$(document).ready(function() {
    $('.status').prepend("<div class='score_this'>(<a href='#'>score this item</a>)</div>");
    $('.score_this').click(function(){
        $(this).slideUp();
        return false;
    });

    $('.score a').click(function() {
        $(this).parent().parent().parent().addClass('scored');
        $.get("/js/Rating.php" + $(this).attr("href") +"&update=true", {}, function(data){
            $('.scored').fadeOut("normal",function() {
                $(this).html(data);
                $(this).fadeIn();
                $(this).removeClass('scored');
            });
        });
        return false; 
    });
});
$(文档).ready(函数(){
$('.status')。前缀(“()”);
$('.score_this')。单击(函数(){
$(this.slideUp();
返回false;
});
$('.score a')。单击(函数(){
$(this.parent().parent().parent().addClass('scored');
$.get(“/js/Rating.php”+$(this.attr(“href”)+“&update=true”,{},函数(数据){
$('.scored').fadeOut(“正常”,函数(){
$(this).html(数据);
$(this.fadeIn();
$(this.removeClass('scored');
});
});
返回false;
});
});

当它显示
/js/Rating.php
时,该文件位于
应用程序/模块/配方/模型中
/Rating.php,这是因为它包含一些无法在应用程序外部通过控制器访问的Zend逻辑。

。这是唯一合理的方法

记住JavaScript是在客户端执行的,而不是在服务器端。您将模型放置在可公开访问的webroot之外,因为您的用户应该通过应用程序的FrontController而不是直接在模型上访问您的MVC应用程序(例如,评级模型中的域逻辑)

换句话说,由于
.get()
发出了一个Ajax请求,因此您应该将该请求定向到应用程序中的Ratings controller,并使Ratings controller调用应用程序中的相应模型。模型将某些内容返回给控制器,然后控制器将此结果返回给客户端

例如:

$.get("/rating/update/someParamId/someParamValue");

这假定您使用的是默认的重写规则。然后在控制器中执行
$this->getRequest()->getParam('someParamId')
,它将包含'someParamValue'。控制器会将通常由操作呈现的ViewScript返回给客户端,因此您可能希望禁用布局以仅返回HTML片段。

因此,如果我有一个分级控制器,我将如何更改javascript以重定向到这个完整url?是的,您现在做得不对。我假设你有一个Gordon提到的收视率控制器,你可能会把这个动作称为update,然后你的URL应该是/Ratings/update。这应该可以解决问题,但我无法帮助编写实际代码:)我同意这个答案。例如,您可以创建一个分级控制器,并像通过JS的简单页面一样获得它,但参数使用POST方法传递,这实际上并不重要。另外,在理想情况下,从脚本获取JSON响应以检查错误等。好的,我理解通过mvc结构工作,但是将脚本破解到这个模型中可能非常困难。另外,我认为在这个项目中,ajax知识的水平有点超出我的理解范围。