Pregunta

Me estoy metiendo en Dojo y quería probar una publicación simple de AJAX como ejemplos en Sitio web de Dojo.

Aquí está el 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>

y en el backend tengo lo siguiente:

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

Cuando hago clic en el botón 'Guardar proyecto', aparece un cuadro de alerta JS con salida php de una matriz vacía, por lo que no se publica ninguna información. ¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Esto se debe a un estúpido error. No tenía un nombre establecido en ninguno de los elementos del formulario, solo ID.

Otros consejos

Como he estado jugando con datos POST a través de Dojo anoche, tengo un pequeño comentario.

dojo.xhrPost () parece funcionar solo en la última versión de Dojo Toolkit, cuando usa versiones anteriores está bloqueado en dojo.io.iframe.send () , si desea manejar el servidor de respuesta que le ofrece después de PUBLICAR datos. La documentación es poco clara sobre esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top