как передать переменную js в качестве ключа в массив опций - PullRequest
0 голосов
/ 12 октября 2011

Я пытаюсь использовать переменную в качестве значения «ключа» в массиве опций объекта javascript swfupload.Страница получения запроса ajax проверяет имя / идентификатор сеанса перед продолжением обработки, поэтому эти значения являются обязательными.

Однако, поскольку имя сеанса является переменным, я не могу просто установить его статически.Я пытаюсь что-то вроде этого:

var myid        = ".$php_pageid.";
var sessionid   = '".$php_sessionid."'; 
var sessionname = '".$php_sessionname."';
var swfu = new SWFUpload({
    // Backend Settings
    upload_url: "index.php",
    post_params: 
    {
        "task" : "ajaxUpload",
        "id" : myid, 
        sessionname : sessionid 
    },

Однако, когда я console.dir объект SWFU, он показывает

sessionname: "234630019cc86c366e1fa390ac737648" 

вместо

d9fb7fb097782697802a63e5f65b765e: "234630019cc86c366e1fa390ac737648"

как требуется.

Я знаю, что мог бы просто сделать

var swfu = new SWFUpload({
    // Backend Settings
    upload_url: "index.php",
    post_params: 
    {
        "task" : "ajaxUpload",
        "id" : myid, 
        "'.$php_sessionname.'" : "'.$php_sessionid.'"
    },

Но я абстрагирую js в его собственный файл и устанавливаю все переменные в файле PHP.

Есть ли правильный способ установить переменную в качестве ключа пары параметров?

1 Ответ

1 голос
/ 12 октября 2011

Делайте это динамически, а не декларативно:

var params = {
    "task" : "ajaxUpload",
    "id" : myid
};

params[sessionname] = sessionid;

var swfu = new SWFUpload({
    // Backend Settings
    upload_url: "index.php",
    post_params: params,
...