ajaxupload jeditable и Zend Framework - PullRequest
       7

ajaxupload jeditable и Zend Framework

0 голосов
/ 01 декабря 2010

Я пытаюсь использовать jeditable с ajaxupload, вы можете увидеть демо здесь .Я использую этот плагин в файле Zend View следующим образом:

JS CODE

$(".ajaxupload").editable("<?php echo $this->baseUrl('/inside/students/update-student'); ?>", {
            indicator : "<img src='<?php echo $this->baseUrl('img/indicator.gif'); ?>'>",
            type      : 'ajaxupload',
            submit    : 'Upload',
            cancel    : 'Cancel',
            tooltip   : "Click to upload..."
        });

HTML CODE

<img class="left-floating-image=" src="<?php echo $this->baseUrl($this->user['img_path']); ?>" />
        <p id="img_path" class="ajaxupload">Upload</p>

Мой PHP-код в контроллере Zend:

public function updateStudentAction() {
        $this->_helper->layout->disableLayout();
        $this->_helper->viewRenderer->setNoRender();
        if ($this->_request->isPost()) {
            $params = $this->_request->getParams();
            Zend_Debug::dump($params);
            $field = $params['id'];
            $value = $params['value'];
//            $userID = Zend_Auth::getInstance()->getIdentity()->id;
//
//            $userModel = new Application_Model_Users();
//            $userModel->update(array($field => $value), "id = $userID");
            echo $value;
        }
    }

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

array(3) {
  ["module"] => string(6) "inside"
  ["controller"] => string(8) "students"
  ["action"] => string(14) "update-student"
}

И 2 ошибки, говорящие об отсутствии индекса 'id' или 'value'.Я проверил, что отправляется на сервер, используя плагин Tamper Data для Firefox.Вот вывод:

21:46:09.886[634ms][total 634ms] Status: 200[OK]
POST http://localhost/industrial/public/inside/students/update-student Load Flags[LOAD_DOCUMENT_URI  LOAD_INITIAL_DOCUMENT_URI  ] Content Size[540] Mime Type[text/html]
   Request Headers:
      Host[localhost]
      User-Agent[Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12]
      Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
      Accept-Language[en-us,en;q=0.5]
      Accept-Encoding[gzip,deflate]
      Accept-Charset[ISO-8859-1,utf-8;q=0.7,*;q=0.7]
      Keep-Alive[115]
      Connection[keep-alive]
      Referer[http://localhost/industrial/public/inside/students]
      Cookie[PHPSESSID=dufubvhd6bihqd4jk5q655bap3]
   Post Data:
      POST_DATA[-----------------------------215452871217546
Content-Disposition: form-data; name="value"; filename="btn_companies.png"
Content-Type: image/png

PNG

Как я могу получить файл, который отправляется, если Zend не получает POST_DATA?После того, как это будет решено, мне нужно, чтобы этот метод принимал решение о типе данных, представляемых (текст или файлы).

1 Ответ

0 голосов
/ 22 апреля 2011

первое из: http://teethgrinder.co.uk/perm.php?a=zend-framework-jeditable Тогда я все еще не совсем уверен, но вот чему я научился на прошлой неделе:

Привет,

Вы не можете прочитатьиз поля ввода файла с помощью jQuery / JavaScript это связано с ограничениями безопасности js.Если я правильно помню, любое чтение из элемента ввода файла вернет пустую строку.

Метод $ form-> isValidPartial () не выполнит проверку, поскольку параметр запроса mailattcht пуст.

Также вы не можете выполнять загрузку файлов через AJAX, если это было вашим конечным намерением.

С уважением

Гарри

http://forums.zend.com/viewtopic.php?f=69&t=11833

...