2009-03-04 15 views
1

Ich komme gerade in Dojo und wollte eine einfache AJAX Post wie die examples auf Dojo-Website versuchen. Hierdojo.xhrPost Keine Daten senden

ist die HTML/JS:

<form method="POST" id="addProjectForm"> 
<dl> 
    <dt>Project Name:</dt> 
     <dd><input dojoType="dijit.form.TextBox" id="projectName"></dd> 
    <dt>Project Description:</dt> 
     <dd><textarea dojoType="dijit.form.Textarea" id="projectDescription" style="width: 300px; height: 100px"></textarea></dd> 
</dl> 

<button dojoType="dijit.form.Button" style="float: right"> 
    Save Project 
    <script type="dojo/method" event="onClick"> 
     dojo.xhrPost({ 
      url: '/projects/add/', 
      load: function(data, ioArgs) { 
       alert(data); 
      }, 
      error: function(data, ioArgs) { 
       alert('There was an error'); 
      }, 
      form: 'addProjectForm' 
     }); 
    </script> 
</button> 
</form> 

und im Backend habe ich folgendes:

class ProjectsController extends Zend_Controller_Action 
{ 
public function addAction() 
{ 
    $this->_helper->layout->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(true); 

    $projectName = $this->_request->getParam('projectName'); 
    $description = $this->_request->getParam('projectDescription'); 

    print_r($_POST); 
} 
} 

Als ich das 'Projekt speichern' klicken, erhalte ich eine Benachrichtigung JS Box mit PHP-Ausgabe eines leeren Arrays, so dass keine der Informationen veröffentlicht wird. Was mache ich falsch?

Antwort

2

Dies ist wegen eines dummen Fehlers. Ich hatte keinen Namen auf einem der Formularelemente, nur IDs.

0

Da ich letzte Nacht mit POST-Daten durch Dojo gespielt habe, habe ich eine kleine Bemerkung.

dojo.xhrPost() scheinen nur in der letzten Version von Dojo Toolkit zu arbeiten, wenn frühere Versionen verwenden Sie dojo.io.iframe.send gesperrt(), wenn Sie die Antwort-Server zu handhaben wollen gibt Ihnen nach dem POST Daten. Die Dokumentation ist dabei nicht eindeutig.