一键上传(ocupload)jquery插件和cakephp 2

一键上传(ocupload)jquery插件和cakephp 2,php,javascript,jquery,ajax,cakephp,Php,Javascript,Jquery,Ajax,Cakephp,我正在尝试使用jquery的“一键上传”插件 它是一个插件,可以将普通输入type=“file”更改为您想要的任何元素,例如div,因此当您单击此div时,将打开一个文件浏览器,允许您选择要上载的文件。然后它提交了一个隐藏的表单,其中涉及一个iframe,我相信这个概念是众所周知的,但我并不知道 无论如何,到目前为止一切都很好。。。我的div打开了一个文件broswer 问题是,当选择一个文件时,插件应该自动将表单提交给您定义的操作。这似乎没有正确地发生,我认为这可能与我瞄准身体动作的位置有关

我正在尝试使用jquery的“一键上传”插件

它是一个插件,可以将普通输入type=“file”更改为您想要的任何元素,例如div,因此当您单击此div时,将打开一个文件浏览器,允许您选择要上载的文件。然后它提交了一个隐藏的表单,其中涉及一个iframe,我相信这个概念是众所周知的,但我并不知道

无论如何,到目前为止一切都很好。。。我的div打开了一个文件broswer

问题是,当选择一个文件时,插件应该自动将表单提交给您定义的操作。这似乎没有正确地发生,我认为这可能与我瞄准身体动作的位置有关

因此,在我看来,为了添加新的“瓷砖”,我有:

<div id="TileImageUpload">Upload an image</div>
在上面的示例中,action参数指向my TileController action=>uploadImage。这看起来像:

function uploadImage() {
    if ($_POST["upload"]=="Upload") { 
        return 'wooHoo';
    } else {
        return 'BooHoo';
    }
}
注意我也尝试了回音“WoHoo”ect,但没有起到任何作用

因此,基本上,如果有一个成功的表单post,那么它应该将WooHoo返回到javascript,然后javascript应该提醒它

这不会发生的。有人知道为什么吗。就像我说的,我想可能和形体动作有关,但我已经尽了我所能


插件的实际JS不是很大,在这里发布可能有点过头了。如果有善良的灵魂同情和幻想帮助我走出困境,我可以在上面的链接上找到它

不应使用“return”,而应尝试使用“echo”

但是,由于在这种情况下,您的操作没有使用视图文件,因此您还应该禁用“autoRender”

$this->autoRender = false;
否则,CakePHP将抛出“未找到视图”异常

此外,要获取发布在CakePHP中的数据,请使用对象

例如:

$this->autoRender = false;

if($this->request->is('post')) {
    echo 'data is posted. This is the content of the request:';
    debug($this->request->data);
} else {
    echo 'no form is posted';
}
最后,如果要返回JSON数据,请参阅手册的以下部分

$this->autoRender = false;

if($this->request->is('post')) {
    echo 'data is posted. This is the content of the request:';
    debug($this->request->data);
} else {
    echo 'no form is posted';
}