プロが教える店舗&オフィスのセキュリティ対策術

下記のプログラムで絞り込み検索をした後、結果画面でも 1.タグと 2.検索テキスト文字が表示されるようにしたいのですが、どのような記述を加えればいいのでしょうか。phpの基礎がわかっていないので、結論だけで結構です。1か2の片方だけでもかまいません。よろしくお願いいたします。

<form method="get" action="<?php bloginfo( 'url' ); ?>">
<p>絞り込み検索</p>
<?php wp_dropdown_categories('depth=0&orderby=name&hide_empty=1&show_option_all=カテゴリー選択'); ?>
<?php $tags = get_tags(); if ( $tags ) : ?>
<select name='tag' id='tag'>
<option value="" selected="selected">タグ選択</option>
<?php foreach ( $tags as $tag ): ?>
<option value="<?php echo esc_html( $tag->slug); ?>"><?php echo esc_html( $tag->name ); ?></option>
<?php endforeach; ?>
</select>
<?php endif; ?>
<input name="s" id="s" type="text" />
<input id="submit" type="submit" value="検索" />
</form>

A 回答 (4件)

ごめんなさい、「保持」というのは同じページにサブミットしたときに


元のセレクトボックスが選択された状態になっているという意味でしょうか?

例示を見る限り
<option value="" selected="selected">タグ選択</option>
とベタで1アイテム目が選択されているので、それ以下のものを
なにかプログラムで選択しても意味ないですね
とりあえずデフォルトのselectedは外してください

<option value="" >タグ選択</option>
<?php foreach ( $tags as $tag ): ?>
<option value="<?php echo esc_html( $tag->slug); ?>"<?php print $tag->slug==filter_input(INPUT_GET,'tag')?" selected":""; ?>><?php echo esc_html( $tag->name ); ?></option>
<?php endforeach; ?>

のようなやり方になると思います
    • good
    • 0
この回答へのお礼

タグを選択して結果が表示されたときに、選択したタグがそのまま表示されているという意味です。
さきほどお教えいただいたものに書き換えたところ、上手くいきました! ! ありがとうございました。
入力した検索文字は、消えますので、こちらを残す方法もお教えいただけると助かります。

お礼日時:2016/08/05 18:15

すみません、print するの忘れてました

    • good
    • 0

なるほど、私の理解で問題ないようであればテキストのところはこんな感じ



<input name="s" id="s" type="text" />
↓↓↓
<input name="s" id="s" type="text" value="<?PHP htmlspecialchars(filter_input(INPUT_GET,'s')); ?>"/>
    • good
    • 0
この回答へのお礼

ありがとうございます。
ただ、やってみましたが、検索結果の画面では、入力したテキストは消えていました。

お礼日時:2016/08/06 18:27

wordpress?環境はある程度きちんと書いたほうがよいです


このケースであればタグは$_GET["tag"]、検索テキストは$_GET["s"]で参照できそうです
    • good
    • 0
この回答へのお礼

すみませんでした。wordpress環境です。
PHPはほとんどわかりませんので、実際の記述内容を教えていただけると助かります。

お礼日時:2016/08/05 10:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!