0

私はPHPが初めてで、ワードプレスのユーザーテーブルでドロップダウンリストを機能させようとしています

ユーザー ID を値として設定しようとしていて、user_login を表示したいのですが、正しく取得できません。間違ったIDで2回レンダリングしています。これが私のコードです

global $wpdb;
        $userids = $wpdb->get_col("SELECT ID FROM $wpdb->users");
        $user_logins = $wpdb->get_col("SELECT user_login FROM $wpdb->users");

        echo '<select>';
        foreach($userids as $userid){
            foreach($user_logins as $user_login)
            echo '<option value="'.$userid.'" selected="'.$user_login.'">'.$user_login.'</option>';
        }
        echo '</select>';

どうもありがとう

4

2 に答える 2

1

現在使用している 2 つのクエリを使用する必要がある場合は、次の代わりにカウンターを使用して反復できますforeach

$count = count($userids);
for ($i = 0; $i < $count; $i++) {
    echo '<option value="' . $userids[$i] . '" selected="' . $user_logins[$i] . '">' . $user_logins[$i] . '</option>';
}

get_results()WordPress の方法を使用して、2 つのクエリを 1 つのクエリに結合できます。

$users = $wpdb->get_results("SELECT ID, user_login FROM $wpdb->users");
echo '<select>';
foreach ($users as $user) {
    echo '<option value="' . $user->ID . '" selected="' . $user->user_login . '">' . $user->user_login . '</option>';
}
echo '</select>';

また、指摘する価値があるのは、optionselected属性が不適切に使用されていることです。単一のオプションでのみ設定する必要があり、通常は などの「選択済み」の値で設定されselected="selected"ます。ただし、それに関する詳細については、 W3C のドキュメントを参照してください。

于 2012-08-03T18:28:23.157 に答える
1

2 つのループを実行しているようですがforeach、 と の間の重複の不一致が原因で問題が発生している可能性が$useridsあり$user_loginsます。代わりに、次のforようなループを使用してみてください。

for ($i = 0; $i < count($userids); $i++){
    echo '<option value="'.$userids[$i].'" selected="'.$user_logins[$i].'">'.$user_logins[$i].'</option>';
}
于 2012-08-03T18:33:00.417 に答える