2015-10-30 6 views
0

Я Собирая усовершенствованную систему после уведомления для WordPress пользовательских сообщений, основанного на посте Карло Даниэлы здесь: http://www.smashingmagazine.com/2015/05/building-wordpress-notification-system/значение проводка MULTISELECT как массив

Я пытаюсь изменить его так, что пользователь может выбрать несколько государств/Области, где я столкнулся с трудностями, вы отправляете выбранные состояния в базу данных.

$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[]">

Это публикуемую как «Array»

Любая помощь будет велика, как всегда!

ответ

0

Использование <select multiple="multiple" name="state[]"> работает, потому что вы получаете «Массив» в качестве значения. Проблема заключается в том, что база данных не понимает типы PHP данных, так что вам нужно, чтобы преобразовать его в чем-то поймет ... быстрый поиск:

Insert array into MySQL database with PHP

Или вы можете выбрать для упорядочивания данных и вставить его таким же образом:

http://php.net/manual/fr/function.serialize.php

Смежные вопросы