編集画面の管理項目を追加する

WordPress

前回追加したテーブルの値を編集する為に、管理画面の「編集時」の表示を変更します。

これまでは「NAME」という値の編集しかできませんでしたが、
ここに管理項目として「テキスト」「チェックボックス」「ラジオボタン」「セレクトボックス」「テキストエリア」という項目を追加します。

修正時のメソッド全体は以下のようになります。

	/**
	 * 修正
	 */
	function edit()
	{

		if (isset($_REQUEST["form_id"])) {
			$form_id = esc_attr($_REQUEST["form_id"]);
			$sample_name = esc_attr($_REQUEST["sample_name"]);
			$create_date = esc_attr($_REQUEST["create_date"]);
		} else {
			//押されたボタンのIDを取得する
			if (array_search("編集", $_REQUEST["submit"]["edit"])) {
				$form_id = array_search("編集", esc_attr($_REQUEST["submit"]["edit"]));
			}

			global $wpdb;

			$tbl_name = $wpdb->prefix . 'sample_mst';
			$sql = "SELECT * FROM {$tbl_name} WHERE id = %d;";
			$prepared = $wpdb->prepare($sql, $form_id);
			$rows = $wpdb->get_results($prepared, ARRAY_A);

			$sample_name = $rows[0]["sample_name"];

			$sample_text  = $rows[0]["sample_text "];
			$sample_check  = $rows[0]["sample_check "];
			$sample_radio  = $rows[0]["sample_radio "];
			$sample_select  = $rows[0]["sample_select "];
			$sample_textarea = $rows[0]["sample_textarea"];

			$create_date = $rows[0]["create_date"];
		}

		//データ一覧
		echo <<< EOL
<form action="" method="post">
	<h2>データ編集</h2>

	<div class="wrap">

	<table class="wp-list-table widefat striped posts">
		<tr>
			<td>ID</td>
			<td>{$form_id}</td>
		</tr>
		<tr>
			<td>NAME</td>
			<td>
				<input type="text" name="sample_name" value="{$sample_name}">
			</td>
		</tr>

		<tr>
			<td>テキスト</td>
			<td>
				<input type="text" name="sample_text" value="{$sample_text}">
			</td>
		</tr>
		<tr>
			<td>チェックボックス</td>
			<td>
				チェック値1<input type="checkbox" name="sample_check" value="1">
				チェック値2<input type="checkbox" name="sample_check" value="2">
				チェック値3<input type="checkbox" name="sample_check" value="3">
			</td>
		</tr>
		<tr>
			<td>ラジオボタン</td>
			<td>
				ラジオ値1<input type="radio" name="sample_radio" value="1">
				ラジオ値2<input type="radio" name="sample_radio" value="2">
				ラジオ値3<input type="radio" name="sample_radio" value="3">
			</td>
		</tr>
		<tr>
			<td>セレクトボックス</td>
			<td>
				<select name="sample_select">
					<option value="a">選択a</option>
					<option value="b">選択b</option>
					<option value="c">選択c</option>
					<option value="d">選択d</option>
					<option value="e">選択e</option>
				</select>
			</td>
		</tr>
		<tr>
			<td>テキストエリア</td>
			<td>
				<textarea name="sample_textarea" cols="30" rows="5">{$sample_textarea}</textarea>
			</td>
		</tr>

		<tr>
			<td>登録日時</td>
			<td>{$create_date}</td>
		</tr>
	</table>

	<input type='submit' name='submit[edit_check]' class='button-primary' value='編集内容を確認する' />
	<input type='submit' name='submit[]' class='button-primary' value='戻る' />

	<input type="hidden" name="form_id" value="{$form_id}">
	<input type="hidden" name="create_date" value="{$create_date}">

	</div>

</form>
EOL;
	}

上記のように書くと、画面は以下のように表示されます。

この増やした項目に対して、登録や修正を行えるようにしていきます。

コメントを残す

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