ループ内のテキストを登録したいです
Q&A
Closed
解決したいこと
foreachで繰り返しの中にテキストボックスを入れており、
submitでDBに内容を登録したいのですが、イメージ通りに動きません。
発生している問題・エラー
登録されない
該当するソースコード
<?php
require_once( dirname(dirname(dirname(dirname(dirname( __FILE__ ))))) . '/db.php' );
global $wpdb;
$tablename = $wpdb->prefix . "XXX";
$server = "XXX";
$database = "XXX";
$user = "XXX";
$password = "XXX";
$conn = odbc_connect("Driver=SQL Server;Server=$server;Database=$database;", $user, $password);
$year = date("Y");
$month = date('m');
$lastmonth = date('m') - 1;
$lastyear = date("Y") - 1;
$code = filter_input(INPUT_POST,'code');
$array = [
"A" => "01",
"B" => "02",
"C" => "03"
];
echo "<form method='post' action=''>";
echo "<table>";
//ここからテーブル作成していますが省略します。
foreach($array as $NAME => $CODE) {
$memo = '${"memo".$CODE}';
$$memo = filter_input(INPUT_POST, $CODE.'memo');
$memo_val = $wpdb->get_var( "SELECT memo FROM $wpdb->XXX where code='$CODE'");
//$memo_valは、すでに登録されたデータを参照しています。
//その他にもデータを読み込んでいますが省略します。
echo "<input type='text' name='".$CODE."memo' value='".$memo_val."' placeholder='メモ' />";
echo "<input type='hidden' name='code' value='".$CODE."'>";
}
echo "<input style='width:100%;' type='submit' name='update' value='メモ更新' />";
echo "</table>";
echo "</form>";
if(isset($_POST["update"])) {
$wpdb->update($tablename,array('memo' => ${"memo".$CODE}),array('code' => $code),array('%s'),array('%d'));
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
odbc_close($conn);
?>
自分で試したこと
自分の中ではループでそれぞれに名前をつけてテキストボックスを作り、
そのいずれかを単純にsubmitするというイメージで作りたかったのですが、
ちょこちょこ配置を変えたりしても上手く達成できませんでした。
お分かりになられる方いらっしゃいましたら、恐れ入りますがご助力ください。
よろしくお願い申し上げます。
0 likes