(1) form内に、編集しpostするためのinputタグを作ります。
<form method="post" action="<?php echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']); ?>">
<ul>
<li>行番号:<input disabled type="text" id="disp_id" size="3" />
<input type="hidden" id="id" name="id" /></li>
<li>氏名:<input type="text" id="name" name="name" /></li>
<li>年令:<input type="text" id="age" name="age" size="3" /></li>
<li>社員番号:<input type="text" id="employee_no" name="employee_no" /></li>
</ul>
<div>
<input type="radio" id="edit" value="1" name="radio" />
<Label for="edit">更新</Label>
<input type="radio" id="add" value="2" name="radio" />
<Label for="add">追加</Label>
<input type="radio" id="delete" value="3" name="radio" />
<Label for="delete">削除</Label>
<input type="submit" name="submit" value="実行" />
<input type="button" value="クリア" onclick="clear_field();" />
</div>
</form>
<ul>
<li>行番号:<input disabled type="text" id="disp_id" size="3" />
<input type="hidden" id="id" name="id" /></li>
<li>氏名:<input type="text" id="name" name="name" /></li>
<li>年令:<input type="text" id="age" name="age" size="3" /></li>
<li>社員番号:<input type="text" id="employee_no" name="employee_no" /></li>
</ul>
<div>
<input type="radio" id="edit" value="1" name="radio" />
<Label for="edit">更新</Label>
<input type="radio" id="add" value="2" name="radio" />
<Label for="add">追加</Label>
<input type="radio" id="delete" value="3" name="radio" />
<Label for="delete">削除</Label>
<input type="submit" name="submit" value="実行" />
<input type="button" value="クリア" onclick="clear_field();" />
</div>
</form>
・field_copy() javascirtで、form内のinputにそれぞれコピーし適宜変更します。
・ラジオボタンで、更新、追加、削除をつけて、テーブル操作を指定します。
・post先は、この関数自身です。
(2) postで呼ばれた時の処理を作ります。
<?php
$data = array();
//POSTデータの設定
foreach($_POST as $key => $val) {
if(strcmp($key,'submit') && strcmp($key,'radio')) {
$data += empty($val) ? array() : array($key=>$val);
}
}
//実行ボタンを押した場合
if(!empty($data)) {
〜実行ボタンを押してデータが渡されたときの処理〜
} ?>
<table>
〜WordPress プラグイン制作 その2 (3)省略〜
</table>
<form>
〜上記(1)省略〜
</form>
$data = array();
//POSTデータの設定
foreach($_POST as $key => $val) {
if(strcmp($key,'submit') && strcmp($key,'radio')) {
$data += empty($val) ? array() : array($key=>$val);
}
}
//実行ボタンを押した場合
if(!empty($data)) {
〜実行ボタンを押してデータが渡されたときの処理〜
} ?>
<table>
〜WordPress プラグイン制作 その2 (3)省略〜
</table>
<form>
〜上記(1)省略〜
</form>
・postで渡されたデータ($_POST)を配列にして $dataにまとめます。(submitとradioは除く)
・$dataがある場合は、渡されたデータによりテーブルを更新します。
(3) テーブルを更新します
//実行ボタンを押した場合
if(!empty($data)) {
switch($_POST['radio']) {
case 1: //更新
$wpdb->update($table, $data, array('id'=>$data['id']));
$message = "更新しました。";
break;
case 2: //追加
unset($data['id']);
$wpdb->insert($table, $data);
$message = "追加しました。";
break;
case 3: //削除
$wpdb->query($wpdb->prepare("DELETE FROM ". $table. " WHERE id = ". $data['id']));
$message = "削除しました。";
break;
default:
$message = "操作を指定して下さい。";
}
}
if(!empty($data)) {
switch($_POST['radio']) {
case 1: //更新
$wpdb->update($table, $data, array('id'=>$data['id']));
$message = "更新しました。";
break;
case 2: //追加
unset($data['id']);
$wpdb->insert($table, $data);
$message = "追加しました。";
break;
case 3: //削除
$wpdb->query($wpdb->prepare("DELETE FROM ". $table. " WHERE id = ". $data['id']));
$message = "削除しました。";
break;
default:
$message = "操作を指定して下さい。";
}
}
・radioボタンの状態により、更新・追加・削除を行います。
※これまでのコードは、細かいところは省略して書いてますので、そのままでは動作しないです。大体こんな感じということで、理解して下さい。
[…] => WordPress プラグイン制作 その3 […]