0

リンクのクリック時にjquery投稿リクエストを実行して、zendフォームに入力しようとしています。id を js 関数に渡して、アクションが入力するデータを認識できるようにしますが、値は入力されません。URL を介して id パラメータを渡しているときに、値が設定されていました。

JSコール

<a href="javascript: edit(id)">

JS 関数

function edit(id)
{
    $.post("url",{'edit':id});

}

Zend アクションの内部

 if ($this->_request->getParam('edit')) {
                 $id=$this->_request->getParam('edit');
                 $table=$Table->findByID($id);
                 $table->populateForm();

             }

編集

ajax 呼び出しのデータ型を html に設定し、入力された zend フォームをコントローラーの ajax 呼び出しに渡すことで、フォームにデータを入力してページにレンダリングすることができました。コントローラー: echo $form; exit; Ajax 呼び出し success: function(data){ $(#div).html(data)}

ajax 呼び出しのデータ型が html であることを確認してください

4

4 に答える 4

0

アクションの中には、それよりももう少しコードが必要だと思います

$id    = $this->_request->getParam('edit', NULL);

if(FALSE === is_null($id)) {

     $form      = new Form(); //unless this is created somewhere else
     $data      = $Table->findByID($id); //$table and $Table is bit confusing

     $form->populate($data); 
     /*
     or if $table->populateForm(); does this for you make sure you 
     pass the result data 
     $table->populateForm($data);
     */  
 }
于 2013-01-31T08:39:51.490 に答える
0

ajax呼び出しのデータ型をhtmlに設定し、入力されたzendフォームをコントローラーのajax呼び出しに渡すことで、フォームにデータを入力してページにレンダリングすることができました。

コントローラ: echo $form; exit;

Ajaxコール success: function(data){ $(#div).html(data)}

ajax呼び出しのデータ型がhtmlであることを確認してください

于 2013-02-05T11:40:38.117 に答える
0

get では機能していたが post では機能していなかった場合は、先行ゼロまたは $id の入力に何かが含まれている可能性があります。

特に $Table->findByID が何らかのキャストを行う場合。

試す:

 if ($this->_request->getParam('edit')) {
                 $id= (int) $this->_request->getParam('edit');
                 $table=$Table->findByID($id);
                 $table->populateForm();

             }

それがうまくいかない場合は、投稿から $this->_request->getParam('edit') をデバッグしてみて、em の違いを確認してください。

ただし、例が get で機能していた場合は、post で機能する必要があります。

于 2013-01-31T17:13:19.120 に答える
0

これを試して:

function edit(id)
{
    $.get("url",{'edit':id});
}
于 2013-01-31T08:28:02.023 に答える