将表中特定行的复选框值更新到数据库

时间:2017-05-20 作者:lukeliasi

我编写了一个自定义插件,供人们注册课程。数据以前端形式提交,并存储在数据库的自定义表中。“course\\u completed”列是一个布尔值,默认设置为0(未选中/为false)。

然后我有一个表,它从注册课程的人的数据库中获取数据。课程结束后,管理员应该能够检查谁完成了课程,然后单击保存。我正在努力寻找一种方法,一旦选中某个人的复选框,他们在数据库中的“completed\\u 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、表中的表单或其他东西。

mysqlbackend table

1 个回复
SO网友:Rick Hellewell

粗略回答让您开始。

在循环中,使用行的记录编号(一个名为“IDnumber”,unique,auto的字段)来帮助命名。

隐藏的<input> 应该有类似的id

<input hidden name=\'idnumber\' value=\'<?php echo $row[idnumber];?>\'>
这将使该输入字段的vaue成为该记录的记录编号。(The<input> 语句应位于PHP块之外。)

使用$_POST 通过使用隐藏输入项(“idnumber”)的值确定要更新的记录的值,该值将是要使用表单中的其他值更新的记录号。

循环应该由<form> 阻塞(环路外)。

结束

相关推荐

有没有办法让WordPress的ajaxurl实现跨域资源共享?

WordPress已经有了jQuery WordPress应用程序调用的默认URL,它被称为ajaxurl. 然而,在某些情况下,需要启用Cross-Origin Resource Sharing (CORS),这样任何主机名都可以使用它进行访问。我当前的解决方案是在/wp-includes/http.php 使用:@header( \'Access-Control-Allow-Origin: *\' ); 以便:http。php... function send_origin_head