RadPHPのListViewの項目をAjaxで編集する方法

前回の記事「RadPHP XEのListViewにAjaxで項目を追加する。」のコメントで教えていただいた方法で、RadPHPのListViewの項目をAjaxで編集することができました。

「xajax」の機能を利用してListViewの項目を編集するJavaScriptのコードを送信することで、ListViewの項目ををAjaxで編集できます。

最初に、Ajaxを使用するためにフォームのUseAjaxプロパティをtrueに設定します。

フォームにListViewとButtonを配置します。

Button1のJavaScriptのOnClickイベントを追加します。

//JavaScriptのOnClickイベント
function Button1JSClick($sender, $params)
{
  echo $this->Button1->ajaxCall('Button1Click', array(), array(''));
    ?>
    //begin js
  return false;
    //end
    <?php
}

JavaScriptのOnClickイベント内で使用しているajaxCall()の第3引数は、Ajaxの処理によって編集するコンポーネントの名前を指定します。
何も指定しない場合は、すべてのコンポーネントが更新されます。

今回は、コンポーネントの更新は必要ないので、「array(”)」として更新されないようにしました。

Ajaxで実行するPHPの関数を作成します。

//Ajaxで実行するPHPのコード
function Button1Click($sender, $params)
{
  //JavaScriptのコードを生成する
  $js = 'var rowData = [];';
  $js .= 'rowData.push(["項目1-1", "項目1-2", "項目1-3"]);';
  $js .= 'rowData.push(["項目2-1", "項目2-2", "項目2-3"]);';
  $js .= 'ListView1.getTableModel().addRows(rowData);';
  //JavaScriptのコードを返す
  global $ajaxResponse;
  $ajaxResponse->script($js);
}

Button1をクリックすると、PHPで生成したListView1に項目を追加するJavaScriptが実行されます。

RPCLはRev.286を使用しているので、「$ajaxResponse->script($js);」のようにscriptメソッドを使用しています。
RadPHPの初期状態のRPCLに付属するxajax 0.2.5を使用する場合はscriptメソッドのではなく、addScriptメソッドを使用します。

参考ページ

コメント

  1. Pingback: RadPHP XEのListViewにAjaxで項目を追加する。 « 山本隆の開発日誌

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください