[PHP-users 29022] PHPでのポストバック利用について

井口廣踏 iguchi @ auntrust.jp
2006年 4月 19日 (水) 14:26:14 JST


はじめまして。井口です。
今回初書き込みをさせていただきました。
PHPを使用して間もない事もあり、効率のよいコーディング方法を模索しています。

実は、ASP.NETなどのポストバック機能のついた言語を利用していたこともあり、<form>タグの「action」に別ページを指
定し処理を飛ばすという記述に違和感を感じます。

サブミットされた内容によって、処理ページを切り替えたい場合は、どの様にしているのでしょうか?
ポストバックもどきの方法でPHPを利用されているかたっているのでしょうか?

個人的には、以下の理由で気に入っています。
1) イベントトリブンに記述が近いので理解しやすい
2) サイト内のページ数が削減できる

処理的に遅くなる等、僕の気づかない問題点が多々あると思います。
ご指摘いただけたら幸いです。

+-+-+-+

わかりにくいかもしれませんが、サンプルを以下に記します。
※参考までにテンプレートエンジンにSmartyを利用しています。

#
# ▼サンプル( sample_list.php )
#

説明:
商品郡の一覧表示画面です。
商品行ごとに「商品名」列、「修正ボタン」列、「削除ボタン」列、「詳細ボタン」列 があります。

<?php
require_once("./my_smarty.class.php");

class SampleList{
 
 var $m_objMySmarty;
 
 function SampleList(){
  // mySmartyインスタンスを取得
  $this->m_objMySmarty = new MySmarty();
  $this->action();
 }
 
 function action(){
  
  // 修正ボタンの場合
  if($_POST['modify']){
   $this->Modify_OnClick();
  }
  // 削除ボタンの場合
  else if($_POST['delete']){
   $this->Delete_OnClick();
  }
  // 詳細ボタンの場合
  else if($_POST['delete']){
   $this->View_OnClick();
  }
  
  // ページの表示
  $this->Show();
 }
 
 function Show(){
  $objMySmarty = $this->m_objMySmarty;
  $objMySmarty->display("sample_list.tpl");
 }
 
 function Modify_OnClick(){
  
  ※業務ロジック
  
  // 修正ページへ遷移
  header("Location: other.html");
 }
 
 function Delete_OnClick(){
  
  ※業務ロジック
  
  // 削除ページへ遷移
  header("Location: other.html");
 }
 
 function View_OnClick(){
  
  ※業務ロジック
  
  // 詳細ページへ遷移
  header("Location: other.html");
 }
}

new SampleList();
?>


PHP-users メーリングリストの案内