Index: branches/camp/camp-2_5-D/data/Smarty/templates/admin/system/editdb.tpl
===================================================================
--- branches/camp/camp-2_5-D/data/Smarty/templates/admin/system/editdb.tpl	(revision 19117)
+++ branches/camp/camp-2_5-D/data/Smarty/templates/admin/system/editdb.tpl	(revision 19607)
@@ -24,2 +24,30 @@
 
 <h2>インデックス管理</h2>
+
+<form name="index_form"  method="post" action="?"> 
+  <input type="hidden" name="mode" value="confirm" />
+      <table class="list">
+      
+      <tr>
+    <th>テーブル名</th>
+    <th>カラム名</th>
+    <th>インデックス</th>
+    </tr>
+
+      
+ <!--{section name=cnt loop=$arrForm}-->
+  
+    <tr>
+    <td><!--{$arrForm[cnt].table_name}--></td>
+    <td><!--{$arrForm[cnt].column_name}--></td>
+    <td><input type="checkbox" name="indexflag_new[]" value="<!--{$smarty.section.cnt.index}-->" <!--{if $arrForm[cnt].indexflag == "1"}-->checked<!--{/if}--> /></td>
+    </tr>
+<input type="hidden" name="table_name[]" value="<!--{$arrForm[cnt].table_name}-->" />
+<input type="hidden" name="column_name[]" value="<!--{$arrForm[cnt].column_name}-->" />
+<input type="hidden" name="indexflag[]" value="<!--{$arrForm[cnt].indexflag}-->" />
+
+<!--{/section}-->
+</table>
+
+<input type="submit" value="変更する">
+</form>
Index: branches/camp/camp-2_5-D/data/class/pages/admin/system/LC_Page_Admin_System_Editdb.php
===================================================================
--- branches/camp/camp-2_5-D/data/class/pages/admin/system/LC_Page_Admin_System_Editdb.php	(revision 19392)
+++ branches/camp/camp-2_5-D/data/class/pages/admin/system/LC_Page_Admin_System_Editdb.php	(revision 19607)
@@ -59,5 +59,10 @@
         $objForm = new SC_FormParam();
         $objForm->addParam('mode', 'mode', INT_LEN, '', array('ALPHA_CHECK', 'MAX_LENGTH_CHECK'));
-        $objForm->setParam($_GET);
+        $objForm->addParam('table_name', 'テーブル名');
+        $objForm->addParam('column_name', 'カラム名');
+        $objForm->addParam('indexflag', 'インデックス');
+	$objForm->addParam('indexflag_new', 'インデックス（変更後）');
+	
+	$objForm->setParam($_POST);
         $this->objForm = $objForm;
     }
@@ -72,14 +77,52 @@
         SC_Utils_Ex::sfIsSuccess(new SC_Session);
         $objView = new SC_AdminView();
+	$objSiteInfo = new SC_SiteInfo();
+        $objQuery = new SC_Query();
+        $objDb = new SC_Helper_DB_Ex();
+        $objProduct = new SC_Product();
 
+	//インデックスの値を取得
+	$this->arrForm = $this->lfGetIndexList();
+	
+	//フォームの値を取得
         $this->initForm();
+	
         switch($this->objForm->getValue('mode')) {
+	//確認画面へ
+	case 'confirm' :
+	    //POSTの値と配列の値を比較
+	    // TODO: $_POSTを使わないように修正する。
+            $arrIndexFlag  = $_POST['indexflag'];
+            $arrIndexFlagNewIndex  = $_POST['indexflag_new'];
 
+            $arrIndexFlagNew = array();
+            for($i = 0; $i < count($arrIndexFlag); $i++) {
+                if(array_search($i, $arrIndexFlagNewIndex) !== false) {
+                    $arrIndexFlagNew[] = true;
+                } else {
+                    $arrIndexFlagNew[] = false;
+		}
+	    }
+
+            $objQuery = new SC_Query();
+	    foreach($arrIndexFlag as $key => $val){
+		if($val != $arrIndexFlagNew[$key]) {
+                    //値が異なっていた場合、インデックスのアップデートをかける
+                    $index_name = $_POST["table_name"][$key] . "_" . $_POST["column_name"][$key] . "_key";
+                    if($arrIndexFlagNew[$key] == false) {
+                        $objQuery->dropIndex($_POST["table_name"][$key], $index_name);
+                    } else {
+                        $objQuery->createIndex($_POST["table_name"][$key], $index_name, array('fields' => array($_POST["column_name"][$key] => array())));
+                    }
+
+                    // フォームに引継ぐ
+                    $this->arrForm[$key]["indexflag"] = true;
+		}
+	    }
+	    
+	    $this->tpl_onload = "window.alert('インデックスの変更が完了しました。');";
         default:
-            break;
+        break;
         }
-
-        // インデックス一覧を取得する
-        $arrIndexList = $this->lfGetIndexList();
 
         $objView->assignobj($this);
@@ -95,5 +138,5 @@
         parent::destroy();
     }
-
+    
     /**
      * インデックス設定を行う一覧を返す関数
@@ -106,5 +149,5 @@
         $objQuery = new SC_Query();
         $objQuery->setOrder("table_name, column_name");
-        $arrIndexList = $objQuery->select("table_name, column_name, recommend_flg, recommend_comment", "dtb_index_list");
+        $arrIndexList = $objQuery->select("table_name , column_name , recommend_flg, recommend_comment", "dtb_index_list");
 
         $table = "";
@@ -126,4 +169,4 @@
         return $arrIndexList;
     }
-
+    
 }
