質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

1回答

357閲覧

wpdbから取得したnameをoptionにいれたい

fkshin

総合スコア12

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2018/03/13 03:44

前提・実現したいこと

ユーザーが入力した値を引っ張ってきてselectボックスで選択させたいです。

書いてみたもののうまくいかないコード

function my_custom_checkout_field( $checkout ) { global $wpdb; $results = $wpdb->get_results ('SELECT name FROM wp_bp_groups'); $name_list = array_column( $results, 'name' ); woocommerce_form_field( 'field_team_name', array( 'type' => 'select', 'class' => array('my-field-class form-row-wide'), 'label' => __('選択してください'), 'placeholder' => __('Enter something'), 'options' => array($name_list), ), $checkout->get_value( 'field_team_name' )); }

ただ$resultsをprint_rすると、ずらりと値が出てきます。
$resultsのnameだけを取得してそれをoptionsのarrayに入れたい、と思っているのですがどうもわからず…

お力をお貸しください!
よろしくお願いします!

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

$name_listが配列だったらカンマ区切りに変換してやらないと駄目なんじゃないでしょうか。


$name_list = implode( ',', $name_list );

implode
http://php.net/manual/ja/function.implode.php

投稿2018/03/13 04:02

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fkshin

2018/03/13 09:35

コメントありがとうございます! function my_custom_checkout_field( $checkout ) { global $wpdb; $results = $wpdb->get_results ('SELECT name FROM wp_bp_groups'); $name_list = array_column( $results, 'name' ); $name_list = implode( ',', $name_list ); woocommerce_form_field( 'field_team_name', array( 'type' => 'select', 'class' => array('my-field-class form-row-wide'), 'label' => __('所属チームを選択してください'), 'placeholder' => __('Enter something'), 'options' => array($name_list), ), $checkout->get_value( 'field_team_name' )); } こういうことですかね? 入れてみたのですが、selectボックスは空っぽのままでした……
退会済みユーザー

退会済みユーザー

2018/03/13 09:39

あくまで予想なので$name_listの中身次第です。
fkshin

2018/03/13 09:45

print_r($results); で、見てみると Array ( [0] => stdClass Object ( [name] => aaaaa ) [1] => stdClass Object ( [name] => bbbbb ) [2] => stdClass Object ( [name] => ccccc ) [3] => stdClass Object ( [name] =>ddddd ) [4] => stdClass Object ( [name] => eeee ) となります……
fkshin

2018/03/13 12:34

function my_custom_checkout_field( $checkout ) { global $wpdb; $results = $wpdb->get_col('SELECT name FROM wp_bp_groups'); $name_list = array_column( $results, 'name' ); $name_list = implode( ',', $name_list ); woocommerce_form_field( 'field_team_name', array( 'type' => 'select', 'class' => array('my-field-class form-row-wide'), 'label' => __('your_team_name'), 'placeholder' => __('チームを選んでください'), 'options' => $results, ), $checkout->get_value( 'field_team_name' )); } これでいけました! ありがとうございました! 助かりました…!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問