Wordpress:插件中的复选框

时间:2015-04-25 21:49:48

标签: php wordpress checkbox

我目前有这段代码......

    $wpdb->update( 
        $table_name_employee, 
        array( 
            'ID' => $_POST["user"], 
            'Role' => $_POST["Role"], 
            'Seniority' => $_POST["Seniority"], 
            'Payroll' => $_POST["Payroll"], 
            'ReportTo' => $_POST["ReportTo"], 
            'Tasks' => $_POST["Tasks"], 
        ), 
        array( 
            'ID' => $_POST["user"], 
        ) 
    );

$_POST["Tasks"]的值是一个数组,而不是一个字符串。它来自复选框代码......

...
<input type=checkbox name="Tasks[]" value="38"> Task 38
<input type=checkbox name="Tasks[]" value="39"> Task 39
<input type=checkbox name="Tasks[]" value="40"> Task 40
... many more

如果我将Tasks[]更改为Task,我只会检查一个复选框的值。如果我将其保留为Tasks[],则该值将作为数组传递,但上面的$wpdb->update()命令会因此错误而失败:

Warning: mb_check_encoding() expects parameter 1 to be string, array given in /home/gj/public_html/matrix/bg/wp-includes/wp-db.php on line 2378

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in /home/gj/public_html/matrix/bg/wp-includes/wp-db.php on line 1094

我的问题是:如果$wpdb->update()是一个数组,我如何正确修改$_POST["Tasks"]?我所做的任何搜索都没有成功显示类似的情况。

1 个答案:

答案 0 :(得分:0)

Vincent Decaux指出我的大脑放屁并在$wpdb->update()之前添加了这段代码......

    if (isset($_POST['Tasks']))
    {
        $_POST['Tasks']=implode("|", $_POST['Tasks']);
    }