//divブロックでの入力画面
foreach ($pdo->query('select * from wp_zhongwen') as $row) {
// echo "\t<tr>\n";
echo '<form action="http://kawana.php.xdomain.jp/wp-content/themes/twentynineteen_child/update-output.php" method="post">';
echo '<input type="hidden" name="No" value="', $row['No'], '">';
echo '<div class="td0">', $row['No'], '</div> ';
echo '<div class="td1">';
echo '<input class="td11" type="text" name="Japanese" value="', $row['Japanese'], '">';
echo '</div> ';
echo '<div class="td1">';
echo ' <input type="text" name="zhongwen" value="', $row['zhongwen'], '">';
echo '</div> ';
echo '<div class="td1">';
echo ' <input type="text" name="check" value="', $row['mark'], '">';
echo '</div> ';
echo '<div class="td2"><input type="submit" value="更新"></div>';
echo '</form>';
echo "\n";
}
// echo "\t<tr>\n";
//表からの入力画面
echo "<table class='chart'>\n";
foreach ($pdo->query('select * from wp_zhongwen') as $row) {
echo "\t<tr>\n";
echo '<form action="http://kawana.php.xdomain.jp/wp-content/themes/twentynineteen_child/update-output.php" method="post">';
echo "\t\t<td type='hidden' class='tdz tdNo'><input name='No' value='{$row['No']}'></td>\n";
echo "\t\t<td class='tdz tdJapanese'><input class='chart1' name='Japanese' value='{$row['Japanese']}'></td>\n";
echo "\t\t<td class='tdz tdzhongwen'><input class='chart1' name='zhongwen' value='{$row['zhongwen']}'></td>\n";
echo "\t\t<td class='tdz tdmark'><input class='chart1' name='mark' value='{$row['mark']}'></td>\n";
echo "\t\t<td class='tdz tdsubmit'><input type='submit' value='更新'></td>\n";
echo '</form>';
echo "\t</tr>\n";
echo "\n";
}
echo "</table>\n";
■MySQLのフィールド名
MySQLのフィールド名に「check」を使うとデータの更新ができない。今回は「mark」に変更した。(「check」でもデータの追加はできた。)
■<input>ブロック内の表示は1行まで
表に表示された文章を直接変更してデータ更新するために、<td>に<input>を入れたが、長文の場合の折り返し表示ができない。そのため全文が見えず使いずらい。
そのため更新該当行の「更新ボタン」を押して別のオリジナルphpの<input>ブロックに変更する文を表示し、そこで変更することにした。左記コードのupdate-output.phpを作成。
■オリジナルPHPの注意点
1.get_header()が有効にならない。
wordpress固定ページ編集ページ「テンプレート」でオリジナル
phpをテンプレート登録する。詳しくは以下参照。
【WordPress】オリジナルテーマ作成中にheader.phpをget_headerで読み込めない現象 | (yutaliberty.com)
2. そのままではstyle.cssとリンクしない。
以下コードでリンクする。
<link rel=”stylesheet” href=”style.css”>