2010-12-01 16 views
0

Ich versuche, Jeditable mit Ajaxupload zu verwenden, können Sie eine Demo here sehen. Ich benutze dieses Plugin in einer Datei zend Ansicht wie folgt:Ajaxupload Jeditable und Zend Framework

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> 

Mein PHP-Code in der zend Controller:

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; 
     } 
    } 

Das einzige Problem ist, dass, wenn ich die POST-Vars dump ich die gepostete Variable nicht erhalten. Ich bekomme nur das:

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

Und 2 Fehler zu sagen, dass es keinen Index ‚id‘ oder ‚Wert‘. Ich habe überprüft, was mit dem Tamper Data Plugin für Firefox an den Server gesendet wird. Hier ist die Ausgabe:

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 

Wie kann ich die Datei erhalten, die gesendet wird, wenn Zend nicht die POST_DATA bekommen? Sobald dies gelöst ist, muss diese Methode Entscheidungen über den Typ der Daten treffen, die gesendet werden (Text oder Dateien).

Antwort

0

zuerst: http://teethgrinder.co.uk/perm.php?a=zend-framework-jeditable Dann bin ich noch nicht ganz sicher, aber das ist, was ich letzte Woche gelernt:

Hallo,

Sie können nicht aus einer Datei Eingabe Feld lesen mit jQuery/JavaScript, das ist wegen js Sicherheitseinschränkungen. Wenn ich mich korrekt an Dateieingangs-Element erinnert, wird eine leere Zeichenfolge zurückgegeben.

Die $ form-> isValidPartial() -Methode führt die Validierung nicht durch, da Anfrage param mailettcht leer ist.

Sie können auch keinen Datei-Upload über AJAX durchführen, wenn dies Ihre ultimative Absicht war.

Mit freundlichen Grüßen

Garry

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