2010-12-01 2 views
0

私はajaxuploadでjeditableを使用しようとしていますが、デモhereを見ることができます。次のように私は、Zendのビューファイルでは、このプラグインを使用しています:ajaxupload jeditable and 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> 

Zendのコントローラで私のPHPコード:

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'がないことを示しています。私はFirefoxにTamper Dataプラグインを使ってサーバーに送信されているものを確認しました。出力は次のとおりです。

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のセキュリティ制限のために になります。私が を正しく覚えている場合、 ファイル入力要素からの読み取りは、 の空の文字列を返します。

$ form-> isValidPartial()メソッド は、 要求パラメータのmailattchtが空であるため、検証を実行しません。

また、 の意図であれば、ファイルアップロード をAJAX経由で実行することはできません。

種類

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

ゲリーがに関して