みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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つの質問でどれでもいいですのでどなたかお教え願えないでしょうか。

投稿日時 - 2014-09-23 22:04:12

QNo.8765832

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

オススメのjavascript, phpの本とのことですが、自分は本は購入して読んだことがありません。そばに聞ける人がいれば言葉は悪いですが、その人を利用しましょう。

javascriptはjQuery(javascriptのライブラリ)から入りましたので、生のjavascriptは苦手です。
jQueryはやりたいことに対して直感的に扱えるし、ブラウザ間の差異も吸収してくれます。
要素の指定方法がわかれば簡単なところはなんとかなるはずです。

投稿日時 - 2014-09-24 21:37:23

お礼

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

投稿日時 - 2014-09-25 02:09:03

ANo.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" 、そうでない場合は""(空文字)となります。

投稿日時 - 2014-09-24 01:00:09

お礼

ご丁寧な解りやすいご説明、本当にありがとうございます。
よくわかりました。

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

投稿日時 - 2014-09-24 20:19:52

あなたにオススメの質問