根据Carlo Daniele的帖子,我一直在为wordpress自定义帖子整理一个高级帖子通知系统:http://www.smashingmagazine.com/2015/05/building-wordpress-notification-system/
我正在尝试修改它,以便用户可以选择多个状态/区域,我遇到麻烦就是将所选状态发布到数据库。
$smashing_notification_states = array( '- Dublin City Centre -' => '- Dublin City Centre -', '- North Dublin City -' => '- North Dublin City -',
'- South Dublin City -' => '- South Dublin City -',
'- North Co. Dublin -' => '- North Co. Dublin -',
'- South Co. Dublin -' => '- South Co. Dublin -',
'- West Co. Dublin -' => '- West Co. Dublin -', );
选择区域: `
<td>
<label for="state">
<select multiple="multiple" name="state">
<option value="" <?php selected( get_user_meta( $user->ID, 'state', true ), "" ); ?>>Select</option>
<?php foreach ($smashing_notification_states as $key => $value) { ?>
<option value="<?php echo $key; ?>" <?php selected( esc_attr( get_user_meta( $user->ID, 'state', true ) ), $key ); ?>><?php echo $value; ?></option>
<?php } ?>
</select>
<?php _e( 'Select area', 'smashing' ); ?>
</label>
</td>
</tr>`
if( isset($_POST['state']) )
update_user_meta( $user_id, 'state', sanitize_text_field( $_POST['state'] ) );
我已经推了推,但无济于事,尝试过。我尝试的最后一件事是将<select multiple="multiple" name="state">
更改为<select multiple="multiple" name="state[]">
发布为“数组”
任何帮助都会一如既往的好!
答案 0 :(得分:0)
使用<select multiple="multiple" name="state[]">
是有效的,因为您正在使用&#34;数组&#34;作为一种价值。问题是数据库不能理解PHP数据类型,所以你需要将它转换成它能理解的东西......快速搜索:
Insert array into MySQL database with PHP
或者您可以选择序列化数据并以这种方式插入: