私は人々がコースにサインアップするためのカスタムプラグインを書きました。データはフロントエンドフォームで送信され、データベース内のカスタムテーブルに保存されます。 「course_completed」列があり、これはデフォルトで0に設定されている(チェックされていない/ false)ブール値です。
それから私はコースに登録した人々のデータベースからデータを取得するテーブルを持っています。コースが終了したら、管理者はコースを修了した人を確認して[保存]をクリックできます。チェックボックスが人のためにチェックされると、データベースの "completed_course"の値が1に変更される方法を見つけるのに苦労しています。
バックエンドのテーブルにデータベースデータを表示するコード:
<tbody class="alternate">
<?php
global $wpdb;
$table_name = $wpdb->prefix . 'crm';
$result = $wpdb->get_results ("SELECT * FROM $table_name");
?>
<?php foreach ($result as $field): ?>
<tr>
<td><?php esc_attr_e( $field->id, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->time, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->first_name, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->last_name, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->email, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->phone, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->postcode, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->city, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->address, 'wp_admin_style')?></td>
<td><?php esc_attr_e( $field->course, 'wp_admin_style')?></td>
<td><input type="checkbox" name="course_completed" value="1" <?php checked( $field->course_completed, 1 ); ?> /></td>
</tr>
<?php endforeach; ?>
</tbody>
私がAJAX、テーブル内のフォーム、または何か他のものを使用することになっているかどうかわからない。
始めるための大まかな答え.
ループ内で、行のレコード番号( 'IDnumber'というフィールド、unique、auto)を使用してaの名前を付けます。
隠された<input>
は次のようなもののIDを持つべきです
<input hidden name='idnumber' value='<?php echo $row[idnumber];?>'>
これにより、その入力フィールドの値がそのレコードのレコード番号になります。 (<input>
ステートメントは、PHPブロックの外側にある必要があります。)
隠し入力項目の値( 'idnumber')を使用して、更新するレコードを決定するには$_POST
値を使用します。これは、フォーム内の他の値で更新するレコード番号です。
ループは<form>
ブロック(ループの外側)で囲む必要があります。