【问题标题】:JavaScript Upload script - How do i pass on a pId?JavaScript 上传脚本 - 我如何传递 pId?
【发布时间】:2012-05-24 11:49:37
【问题描述】:

我正在使用 CakePHP 的上传插件,我设法修改它以写入路径、调整图像大小并保存图像。但是现在我想将一个 pId 变量(一个 int)传递给我保存图像的函数。

它是这样工作的: 1)有一个addpictures.ctp,内容如下:

$result = $this->Upload->upload('Projects/'.$projects['Project']['id'], $this->Form->field['Project.id'], $projects['Project']['id']);
    echo $result;

这很好用。 (请注意,我添加了第三个参数,即项目 ID。) 2) 被调用的函数如下所示:

public function upload($model, $id, $pId){
        $result =  $this->edit($model, $id, $pId);
        return $result;
    }

这是在 Pluging/AjaxMultiUpload/View/Helper/UploadHelper.php 里面

3) 现在编辑函数(在同一个文件中)如下所示:

public function edit ($model, $id, $pId) {
    require_once (ROOT . DS . APP_DIR . "/Plugin/AjaxMultiUpload/Config/bootstrap.php");


$dir = Configure::read('AMU.directory');
        if (strlen($dir) < 1) {
                    $dir = "files";
                }

        $webroot = Router::url("/") . "ajax_multi_upload";
        // Replace / with underscores for Ajax controller
        $lastDir = str_replace ("/", "___", 
            $this->last_dir ($model, $id));
        $str = <<<END
            <br /><br />
            <link rel="stylesheet" type="text/css" href="$webroot/css/fileuploader.css" />
            <script src="$webroot/js/fileuploader.js" type="text/javascript"></script>
            <div id="AjaxMultiUpload">
                <noscript>
                     <p>Please enable JavaScript to use file uploader.</p>
                </noscript>
            </div>
            <script src="$webroot/js/fileuploader.js" type="text/javascript"></script>
            <script>        
                function createUploader(){            
                    var uploader = new qq.FileUploader({
                        element: document.getElementById('AjaxMultiUpload'),
                        action: '$webroot/uploads/upload/$lastDir/',
                                                pid: '$pId',
                        debug: true
                    });           
                }
                window.onload = createUploader;     
            </script>
END;
                $str .= $this->view ($model, $id, true);
        return $str;
}

现在这是我添加以下内容的地方:

pid: '$pId',

正如您所看到的实例的创建。 现在这个脚本是魔法发生的地方,也是我失去概览的地方。 剧本很长,对不起,我真的不知道该怎么办......


http://jsfiddle.net/sbX8a/

我想在这里的某个地方获取我在 Helper 中传递的 $pId。

我如何做到这一点?

我完全迷路了,经过 2 天的盯着和搞砸后,我迷路了。

您好, 伤害。

撞?

【问题讨论】:

    标签: javascript ajax cakephp upload


    【解决方案1】:

    试试这个,编辑你的上传代码

                function createUploader(){            
                    var uploader = new qq.FileUploader({
                        element: document.getElementById('AjaxMultiUpload'),
                        action: '$webroot/uploads/upload/$lastDir/',
                        debug: true,
                        params: {
                            pid: 123,
                            another: "asd"
                        }
                    });           
                }
    

    【讨论】:

    • 试过了,在第 1198 行我添加了以下内容来检查 alert(params['pid']);但它提醒未定义
    • params 不是数组,所以你不能使用params['pid'],它是一个对象,所以你必须使用params.pid 才能使用它
    • 我确实将其更改为 params.pid,但我仍然得到相同的结果。很抱歉打扰您了。
    • 有人可以再回复一下吗?它仍然无法正常工作,我真的不知道该怎么办
    猜你喜欢
    • 2018-10-03
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 2014-05-31
    相关资源
    最近更新 更多