質問

Dojoに入ったばかりで、 DojoのWebサイト。

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>

そしてバックエンドには次のものがあります:

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

「プロジェクトを保存」ボタンをクリックすると、空の配列のphp出力を含むJSアラートボックスが表示されるため、情報が投稿されません。私は何を間違えていますか?

役に立ちましたか?

解決

これは愚かな間違いによるものです。フォーム要素には名前を設定せず、IDのみを設定しました。

他のヒント

昨夜、Dojoを介してPOSTデータを再生していたので、ちょっとしたコメントがあります。

dojo.xhrPost()は、Dojo Toolkitの最後のバージョンでのみ機能するようです。以前のバージョンを使用すると、 dojo.io.iframe.send()にロックされます、応答サーバーを処理する場合は、データのPOST後に提供されます。これに関するドキュメントは少し不明瞭です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top