Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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
JavaScript上传脚本-如何传递pId?_Javascript_Ajax_Cakephp_Upload - Fatal编程技术网

JavaScript上传脚本-如何传递pId?

JavaScript上传脚本-如何传递pId?,javascript,ajax,cakephp,upload,Javascript,Ajax,Cakephp,Upload,我正在使用一个用于CakePHP的上传插件,我设法修改它以写入路径、调整图像大小并保存图像。但是现在我想把一个pId变量(int)传递给保存图像的函数 这就是它的工作原理: 1) 有一个addpictures.ctp,其中包含以下内容: $result = $this->Upload->upload('Projects/'.$projects['Project']['id'], $this->Form->field['Project.id'], $projects['Pr

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

这就是它的工作原理: 1) 有一个addpictures.ctp,其中包含以下内容:

$result = $this->Upload->upload('Projects/'.$projects['Project']['id'], $this->Form->field['Project.id'], $projects['Project']['id']);
    echo $result;
pid: '$pId',
这很好用。(请注意,我添加了第三个参数,即项目ID。) 2) 正在调用的函数如下所示:

public function upload($model, $id, $pId){
        $result =  $this->edit($model, $id, $pId);
        return $result;
    }
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;
}
这是Pluging/ajaxmultipload/View/Helper/UploadHelper.php中的内容

3) 现在,编辑功能(在同一文件中)如下所示:

public function upload($model, $id, $pId){
        $result =  $this->edit($model, $id, $pId);
        return $result;
    }
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

我如何做到这一点

我完全迷路了,在盯着它转了两天之后,我迷路了

您好, 伤害


Bump?

像这样尝试,编辑上传程序代码

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

试过之后,我在第1198行添加了以下内容以检查警报(params['pid']);但它警告未定义的
params
不是数组,因此不能使用
params['pid']
,它是一个对象,因此必须使用
params.pid
才能使用itI。我确实将其更改为params.pid,我仍然得到相同的结果。对不起,打扰您了。有人能再回复一下吗?它仍然不起作用,我真的不知道该怎么办