• 締切済み

PHPでの検索

初心者です。 ネットもさがしてみたのですが下記の意味がイマイアチわかりません。 <form name="form2" action="search.php" method="post"> <input type="text" name="keyword" size="25" value="<?= $keyword ?>"> <input type="submit" name="search" value="検索"><br /> <input type="radio" checked name="searchSelect" value="AND">AND  <input type="radio" <?= ($searchSelect == "OR")? "checked" : "" ?> name="searchSelect" value="OR">OR </form> (1)<form name="form2" action="search.php" method="post"> 検索ボタンを押すと「action="search.php"」が起動します。  どういう仕組みなのでしょうか。 (2) <input type="text" name="keyword" size="25" value="<?= $keyword ?>">  作者の説明で、  『前の画面でテキストボックスに入力した値を、デフォルトで表示しています。  <input type="text" name="keyword" size="25" value="<?= $keyword ?>">』  となっていますが、value="<?= $keyword ?>"でなぜそうなるのでしょうか。  また、<?= $keyword ?>の<?= ?>構文はどのような機能があるのでしょうか。 (3)<input type="radio" checked name="searchSelect" value="AND">AND  「value="AND">AND」の右側の「AND]はどういう意味でしょうか。 (4)<input type="radio" <?= ($searchSelect == "OR")? "checked" : "" ?> name="searchSelect" value="OR">OR  作者の説明で、  『(6)前の画面でORラジオボタンが選択されていた場合は、選択(checked)します。  <input type="radio" <?= ($searchSelect == "OR")? "checked" : "" ?> name="searchSelect"  value="OR">OR』  とありますが、<?= ($searchSelect == "OR")? "checked" : "" ?>でなぜそういうことができているのでしょうか。  また、『"checked" : 』の『:』は何の役目をしているのでしょうか。 上記4つの質問でどれでもいいですのでどなたかお教え願えないでしょうか。

  • PHP
  • 回答数2
  • ありがとう数2

みんなの回答

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.2

オススメのjavascript, phpの本とのことですが、自分は本は購入して読んだことがありません。そばに聞ける人がいれば言葉は悪いですが、その人を利用しましょう。 javascriptはjQuery(javascriptのライブラリ)から入りましたので、生のjavascriptは苦手です。 jQueryはやりたいことに対して直感的に扱えるし、ブラウザ間の差異も吸収してくれます。 要素の指定方法がわかれば簡単なところはなんとかなるはずです。

wai8605
質問者

お礼

ご返事ありがとうございました。

  • ONEONE
  • ベストアンサー率48% (279/575)
回答No.1

(1) どういう仕組みか?というのはちょっと質問が曖昧か、説明するには幅広すぎるように思います。 簡単に処理内容だけかいつまむと ウェブサイトをみている人が検索ボタンを押下すると、formタグで囲まれているinputタグやtextareaタグに入力された内容がphp側(search.php)に渡されます。 phpに渡ってきた内容は、入力内容が正しいかどうか確認したり、DBに保存したりといった処理をして、必要であれば処理結果をウェブサイトをみている人の画面に表示します。 (2) php側の処理で $keyword という変数に <input type="text" name="keyword" size="25" value="<?= $keyword ?>"> で入力された値を入れているはずです。 例えば、 「初期表示時」$keywordは空文字 「POST時(検索ボタン押下時)」 $keywordは入力された値 という処理をしておきます。 <?= $keyword ?>は<?php echo $keyword ?>です。 phpの設定でshort_open_tagという設定がonのとき使えます。逆に設定されていない場合もあるので私としては非推奨。 http://www.programming-magic.com/20070803011811/ (3) 右側のANDはただのラベルです。 ブラウザで表示されているANDです。 value="AND">ANDの>はinputタグの閉じカッコです。 (4) 三項演算子です。 例えば $a == $b ? 0 : 1; は $aと$bが等しいとき0、そうでないとき1 を返す処理です。 今回 $searchSelect == "OR" ? "checked" : "" とあるので $searchSelectが"OR"の場合"checked" 、そうでない場合は""(空文字)となります。

wai8605
質問者

お礼

ご丁寧な解りやすいご説明、本当にありがとうございます。 よくわかりました。 ちなみにONEONEさんのおすすめの初心者用PHP・javascript書籍があればご紹介していただければ幸いです。 (ONEONEさんのような丁寧な説明があるものがいいのですが・・・。何冊か本は購入したのですが、いづれも説明がある部分トンでいてそこから納得できなくなり読了に至っていません)

関連するQ&A

  • PHPでTEXTと同様なcheckBoxの処理

    下記のフォームから検索キーワードを入力してANDとORの検索はちゃんとできていますが、 チェックボックスを使いテキストフォームと同様のロジックで「りんご■メロン」と 文字と文字の間にスペース「■」で結合して送信し、PHPコード側で受けとるにはどうしたらよいかアドバイス下さい。 ちなみに、PHPコード側では$_REQUEST['word']に<input type=text name=word size=35 value="">と同じような処理を入れたいです。 (1)検索キーワード --------------------------------------- りんご■メロン *■は半角スペース文字とします。 HTMLフォーム --------------------------------------- <form action="test.php" action="POST"> <input type=hidden name=mode value="search"> 検索キーワード:<input type=text name=word size=35 value=""> <select name=option> <option value="and"> AND</option> <option value="or"> OR</option> </select> <input type=submit value="Search"> </form> ↓この処理では全然だめでした。 <form action="test.php" method="post"> <input type="checkbox" name="word[]" value="りんご"> <input type="checkbox" name="word[]" value="メロン"> <input type=submit value="Search"> </form> PHPコード foreach($_REQUEST['word'] as $val){ $_REQUEST['word'] = " "."$val"; }

    • 締切済み
    • PHP
  • 自作の検索エンジンを作りたいんですが

    <form action="http://www.amazon.co.jp/exec/obidos/external-search" target="_blank"> <input type=text name="keyword" size=31 maxlength=255 value=""> <input type="hidden" name="encoding-string-jp" value="日本語" /> <input type="hidden" name="mode" value="blended" /> <input type="hidden" name="tag" value="jojoagogo09-22" /> <form> と <form action="http://www.google.co.jp/search"> <input type=text name=q size=31 maxlength=255 value=""> <input type=hidden name=ie value=UTF-8> <input type=hidden name=oe value=UTF-8> <input type=hidden name=hl value="ja"> をくっつけて、1つのtextボックスからどっちで検索するかラジオボタンで選択してから検索ボタンで検索できるようにしたいです。 やり方だけでも構いませんが、もしよろしければサンプルや実際にくっつけたタグを回答していただけると凄く助かります。 どうかお願いします。

  • 検索結果をサイズ指定した新規ウインドウで表示する

    はじめまして。ATRYといいます。よろしくお願いします。 [search.html]でキーワードをformで入力してもらい、[result.php]で検索、結果を表示させています。 現在は、 --------------[search.html]--------------- (略) <FORM action="result.php" method="post" target="_blank"> キーワード: <INPUT type="text" name="keyword"> <INPUT type="submit" value="GO"> </FORM> (略) ------------------------------------------ のように、ターゲット指定で新規ウインドウを立てていますが、今度はサイズ指定をしたウインドウを立てたいと思います。 JavaScriptでwindow.open()を使うことはわかるのですが、いい方法が浮かびません。たとえば、 --------------[example.html]---------------- (略) <FORM> キーワード: <INPUT type="text" name="keyword"> <INPUT type="button" value="GO" onClick="javascript:window.open('result.php','','width=300,height=500')"> </FORM> (略) -------------------------------------------- としても新規ウインドウは開かず、思う結果にはなりません。何か大きなところを見逃してるような気がするのですが、解決できないでいるので、アドバイスをよろしくお願いいたします。

    • 締切済み
    • PHP
  • 検索にチェックボックス・ラジオボタンを追加する

    こちらでページの分割について質問させていただいたものです。 http://okwave.jp/qa/q6585344.html ベストアンサーに選ばせていただいたコードを元に、 チェックボックス検索・ラジオボタン検索を追加するにはどのようにすればよいのでしょうか。 【htmlのフォーム部分】 <form method="post" action="sample.php"> <input type="text" name="keyword" value="<?php echo $keyword ?>"/> <input type="hidden" name="s" value="0" /> <input type="checkbox" name="search1[]" value="AA">AA<br> <input type="checkbox" name="search1[]" value="BB">BB<br> <input type="checkbox" name="search1[]" value="CC">CC<br> <input type="checkbox" name="search1[]" value="DD">DD<br> <input type="radio" name="search2" value=" ORDER BY id DESC" checked>登録順 <input type="radio" name="search2" value=" ORDER BY age DESC">年齢順 <input type="submit" /> 誠に勝手ながら、急ぎ必要となった知識で、初心者の為丸投げのような質問になり、申し訳ございません。 また、本は片手にあるのですが、用語の理解が不十分なためコード付きにてご回答いただけると嬉しいです。 また、

    • ベストアンサー
    • PHP
  • phpでフォームの値をフレームに渡す際、&が使えず

    こんにちは。 PHPで、メタサーチのようなものを作ろうと思っています。 まず、検索窓に入力した値をGoogle検索に送り、 iframe内に表示するようにしました。 しかし、「PHP 入門」など、通常のキーワードであればうまくいくのですが、 「P&G」など、「&」が入ると、勝手にアンド検索になってしまい、うまく機能しません。 値の送り方に問題があるのでしょうか? ご教示お願い致します。 search1.php <?php $keyword=$_GET["keyword"]; $keyword4url=urlencode($keyword); ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <center> <form action="search1.php" method="get"> キーワード:<input type="text" name="keyword" size="20" value="<?php echo $keyword;?>" onfocus="this.select()"> を <input type="submit" value="検索する"> </form> <br> <iframe src="http://www.google.co.jp/#q=<?php echo $keyword; ?>" name="frame1" frameborder="1" scrolling="auto" width="977" height="600"> </iframe> </center> </body> </html>

    • ベストアンサー
    • PHP
  • 検索場所を増やすには

    cgiに下記のタグを埋め込んで板の検索をできるようにしたのですが、板のディレクトリがたくさんある場合はどのようにすればいいのでしょうか value="support"のsupportを他の板のディレクトリ名にすると、その板の検索がされるのですが <form action="search.cgi" name="SEARCH" method="POST"><BR>[掲示板内全文検索] キーワードは<b>スペース</b>で区切ってください。<BR>検索語句:<input type="text" name="keyword" size="20"><input type="submit" value="検索"><BR><input type="hidden" name="bbs" value="support"><BR></form>

    • 締切済み
    • CGI
  • PHPのサイト内検索の結果をCSVに書き出すには

    Webサイトのサイト内検索が、どれくらい使用されているか調べるため、 検索結果をCSVで書き出したいと考えております。 php初心者のため、苦戦しております。 詳しい方がいらっしゃいましたら、ご教示ください。 サイトはCodeIgniter(コードイグナイター)を使用しており、PHP5.3.3です。 サイト内検索の仕組みは、form actionを使用しており、 htmlに記載のコードは以下です。 ------------------------------------------------------------------------------------------------------- <form action="search.php" method="get" data-form-id="keyword_webcode-search"> <input name="keyword_webcode" type="text" value="" rel="キーワード検索出来ます。"><br> <input type="submit" value="データを送信"> </form> ------------------------------------------------------------------------------------------------------ データ送信先のsearch.phpに書き出すためのコードを追加しておりますが、 何も起こりません。 コードを追加するファイルが間違っているのでしょうか? 追加したコードは以下です。 ------------------------------------------------------------------------------------------------------- $csv = fopen('file.csv', 'a'); fputcsv($csv, $ShiftJIS); fclose($csv); ------------------------------------------------------------------------------------------------------- 色々試してみましたが、うまく行かず行き詰まっています。 どなたかアドバイスいただければと思います。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • GETして新しいウインドウをサイズ指定で開く

    php初心者です。下記のようにactionで検索文字をGETして 検索ウインドウ(search.php)へリンクしています。 この検索ウインドウ(search.php)を新しいウインドウでサイズ指定(小窓のような) で開きたいと思っています。 ググったりしてjavascript等を使い試行錯誤でやってみましたがうまくいきません。 どのように書けばサイズ指定で開くことができるのでしょうか? 出来れば具体的に教えて頂ければ大変助かります。 ご指導のほどよろしくお願い致します。 <form action='search.php' method='GET' > <input size='51' type='text' name='keyword'> <input type='submit' value='検索' > </form>

    • ベストアンサー
    • PHP
  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • サイト内検索について

    <form action="http://www.google.com/search"> <input type="hidden" value="hogehoge.jp" name="as_sitesearch" /> <input type="hidden" name="ie" value="Shift_JIS" /> <input type="hidden" name="oe" value="Shift_JIS" /> <input type="text" name="q" size="31" maxlength="256" value="" /> <input type="submit" name="btnG" value="Search!" /> </form> にて、グーグルの検索を使用してサイト内検索を使おうと思っておりますが、グーグルのアイコンは付けなくても宜しいでしょうか? もし、詳しい方お返事お待ちしております。 以上宜しくお願い致します。

    • ベストアンサー
    • HTML

専門家に質問してみよう