Pergunta

Eu estou apenas começando no Dojo e queria tentar um simples AJAX Publicar como o exemplos em website do Dojo.

Aqui está o 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>

e no backend eu tenho a seguinte:

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

Quando clico no botão 'Save Project', recebo uma caixa de alerta JS com saída php de uma matriz vazia, então nenhuma das informações está sendo lançado. O que estou fazendo de errado?

Foi útil?

Solução

Este é por causa de um erro estúpido. Eu não tinha um conjunto nome em qualquer um dos elementos do formulário, apenas IDs.

Outras dicas

Como eu tenho jogado com dados de lançamento através Dojo noite passada, eu tenho uma pequena observação.

dojo.xhrPost () parecem apenas trabalho na última versão do Dojo Toolkit, ao usar versões anteriores você está trancado para dojo.io.iframe.send () , se você quiser lidar com o servidor resposta dá-lhe depois de dados de lançamento. A documentação é pouco claro sobre isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top