Masalah penghematan nilai Pilihan Ganda

saya membuat kotak meta dan di sini saya membuat opsi pilih dengan banyak

$opt_meta_author = get_post_meta($post->ID, 'opt_meta_author', true);

<select name="opt_meta_author" id="opt_meta_author" multiple="multiple">
    <?php
        $auth_args = array(
            'post_type' => 'author',
            'orderby' => 'title',
            'order' => 'ASC'
        );

        $authors = new WP_Query($auth_args);

        while($authors->have_posts()) :
            $authors->the_post();
    ?>
        <option value="<?php echo the_title() ?>">
            <?php echo the_title() ?>
        </option>
    <?php
        endwhile;
    ?>
</select>

ketika saya memilih beberapa opsi, itu hanya menyimpan satu opsi, saya ingin menyimpan opsi yang dipilih

apakah ada saran

Menyimpan nilai meta

$opt_meta_author = $_POST['opt_meta_author'];
update_post_meta( $post->ID, 'opt_meta_author', $opt_meta_author);

person Community    schedule 12.12.2013    source sumber


Jawaban (2)


$opt_meta_author = unserialize(get_post_meta($post->ID, 'opt_meta_author', true));

<select name="opt_meta_author" id="opt_meta_author" multiple="multiple">
                <?php
                    $auth_args = array(
                        'post_type' => 'author',
                        'orderby' => 'title',
                        'order' => 'ASC'
                    );
                $authors = new WP_Query($auth_args);

                while($authors->have_posts()) :
                    $authors->the_post();
            ?>
                    <option value="<?php echo the_title() ?>">
                        <?php echo the_title() ?>
                    </option>
            <?php
                endwhile;
            ?>
            </select>



Untuk mendapatkan beberapa nilai yang dipilih saat menyimpan, lakukan ini:

$opt_meta_author = serialize($_POST['opt_meta_author']);
person Parixit    schedule 12.12.2013
comment
Tidak terjadi apa-apa, itu hanya memberikan ini pada saya - s:6:Nadeem; - person ; 12.12.2013
comment
@deemi.exe Jika Anda memilih beberapa maka itu akan diteruskan sebagai array ke server, dan Anda harus membuat serialisasi sebelum menyimpan ke database. - person Parixit; 12.12.2013
comment
saya melakukan ini $opt_meta_author = serialize($_POST['opt_meta_author']); update_post_meta( $post-›ID, 'opt_meta_author', $opt_meta_author); - person ; 12.12.2013
comment
ketika saya menyimpan dengan beberapa nilai pilihan, itu hanya memberi saya satu nilai - person ; 12.12.2013

Berapakah var dump dari $_POST['opt_meta_author'])? jika itu adalah array, konversikan menjadi string menggunakan implode dan simpan string dalam database

person baig    schedule 12.12.2013
comment
Ini adalah string, bisakah Anda memberi tahu saya cara menyimpan di db - person ; 12.12.2013
comment
Saya kira update_post_meta( $post->ID, 'opt_meta_author', $opt_meta_author); harus berfungsi untuk menyimpan di database - person baig; 12.12.2013
comment
Terima kasih banyak kawan saya menggunakan implode dan berfungsi tetapi satu kesalahan yang saya lakukan adalah ‹pilih nama=opt-meta_author›, dan lakukan ini ‹pilih nama=opt-meta_author[]› dan ini berfungsi dengan baik dengan implode() - person ; 12.12.2013