2010-12-01 2 views
0

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

JS КОД

$(".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 КОД

<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? Как только это будет решено, мне нужно, чтобы этот метод принимал решения о типе передаваемых данных (текст или файлы).

ответ

0

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

Здравствуйте,

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

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

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

Сердечные приветы

Garry

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