[英]Posting multiselect values as array
I've been putting together an advanced post notification system for wordpress custom posts, based on Carlo Daniele's post here: http://www.smashingmagazine.com/2015/05/building-wordpress-notification-system/ 我一直在根据Carlo Daniele在这里发布的帖子,为wordpress自定义帖子构建一个高级的帖子通知系统: http : //www.smashingmagazine.com/2015/05/building-wordpress-notification-system/
I'm trying to modify it so that user can select multiple States/Areas, where I'm running into trouble is posting the selected states to the database. 我正在尝试对其进行修改,以便用户可以选择多个州/地区,而我遇到麻烦的是将所选状态发布到数据库中。
$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 -', );
Select Area: ` 选择区域:
<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'] ) );
I've pushed and pulled at it but to no avail, tried. 我推了拉它,但无济于事,尝试过。 Last thing I tried was changing
<select multiple="multiple" name="state">
to <select multiple="multiple" name="state[]">
我尝试的最后一件事是将
<select multiple="multiple" name="state">
更改为<select multiple="multiple" name="state[]">
This posted as "Array" 此发布为“数组”
Any help would be great as always! 任何帮助将一如既往!
Using <select multiple="multiple" name="state[]">
works because you are getting "Array" as a value. 使用
<select multiple="multiple" name="state[]">
有效,因为您将“ Array”作为值。 The problem is that a database doesn't understand PHP data types, so you need to convert it into something it will understand... a quick search: 问题是数据库不了解PHP数据类型,因此您需要将其转换为可以理解的内容...快速搜索:
Insert array into MySQL database with PHP 用PHP将数组插入MySQL数据库
Or you can opt to serialize the data and insert it that way as well: 或者,您可以选择序列化数据并以这种方式插入:
http://php.net/manual/fr/function.serialize.php http://php.net/manual/fr/function.serialize.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.