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

困っています(質問のレベルは超初心者です)。
PHPでフォームを作っていますが、リストボックスに表示させる項目に該当するものがなかった場合、直接入力ができるようにしたいのですが、そういう事はできるのでしょうか。できる場合、どうやったらできるか教えて下さい。

もし、上の事ができない場合、リストボックスの「その他」を選んだ時だけ横にあるテキストボックスが入力可になる、というような事はどうやったらできるのでしょうか。

超初心者ですので、当たり前の事が分かっていないかも知れませんが、どうぞよろしくお願いします。

A 回答 (5件)

PHP利用者です。



リスト、テキストフィールド

2つを使うのが簡単かと思います。
その他の場合は、テキストフィールドに入力する方法にして。

#その他を選んで、テキストに入力がない場合エラーメッセージを出す。
if ($list eq "その他" and $text eq "")
 {$error = "その他の場合は、記入して下さい。";}

#リストでその他を選んだ時は、テキストの値を代入。
if ($list eq "その他")
 {$list = $text;}

とPHP側で処理すればいいと思います。

これでいかがでしょうか?
これならJava Scriptを使わず、PHPだけで処理が可能です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。JavaScriptの方はまだまったく確認できていなかったので、PHPだけで処理できる上記の方法で試してみたいと思います。初心者レベルの質問かと思いますが、教えて頂き助かりました!

お礼日時:2005/02/02 10:57

こんばんは。



>PHPとJavaScriptを併用するに当たって、「本当は併用しないほうがいい」とか、「PHPとJavaScriptの併用は本当に普通の話で、処理が重くなるなどの問題は起きない」

JavaScriptを使う、使わないはPHPとの併用というか、
ブラウザの問題(JavaScriptの動作を切っている)が
出てくることが多いです。
サーバ側(PHP)とクライアントのブラウザ(JavaScript)併用しなければぜんぜんしませんし、
必要なら使います。

例えば、JavaScriptのみで入力チェックを行うと
動作が切ってあればノーチェックでサーバ側(PHP)
で処理してしまいます。

会社内で使用するシステムであれば頻繁にJavaScript
を使っている傾向があると思いますが、(ある程度ブラウザ等も指定できるため)
誰が見るかわからないページであると相手のブラウザは
いろいろな種類が出てきてしまいます。

JavaScriptを多用してもサーバ側の処理が重くなることはありません。
フォームの入力をいじる程度のスクリプトなら
閲覧者側の処理の負担も気にすることもない程度です。

>#3のご回答も合わせて考えた場合、JavaScriptを併用すれば、「リストボックスに登録者の選択肢がなければ、そのリストボックスにテキスト入力もできるようにする」事は可能でしょうか?

横にテキストフィールドを用意して入力したものを
リストボックスに追加は可能でしょうが、
リストボックスに直接テキスト入力は不可能です。
    • good
    • 0
この回答へのお礼

LancerVII様、ご回答本当にありがとうございます。分かり易くご説明頂き、しかも急いでいる、という事をご考慮頂き、大変助かりました。今回、初めての質問だったのですが、自分になりに調べても分からなかったため、このような形でご意見を頂けた事に感謝しています。
できること、できないこと、普通は知っている常識みたいなものがほとんどない状況ですが、しっかり勉強していきたいと思います!JavaScriptもこれからなので壁は色々あると思いますが、頑張ってみます。

お礼日時:2005/01/31 23:25

こんばんは。



補足に関しての回答を忘れました。

>また、PHPにJavaScriptを埋め込むという事はできるのでしょうか?

JavaScriptはブラウザに読み込まれて初めて解釈されるので、普通にタグを出力する中にJavaScriptを書くだけです。
==================================================
<?php
//サーバ側で行う処理
$message = "PHPにて値を代入しました。";
?>
<html>
<head>
<title>test</title>
<script type="text/javascript">
<!--
var message = "<?= $message ?>";
function init(){
alert(message);
}
//-->
</script>
</head>
<body onLoad="init();">
</body>
</html>

==================================================

例えば上記のような書き方で、PHP側の$message変数の
内容が、ページが読み込まれた際に表示されます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

私の当初の質問の直接のご回答ではありませんが、とても参考になりました。今は、まずとても単純な(と思われる)事でつまずいていますので、ありがとうございました。具体的に示して頂きましたので、良く分かりました。

厚かましいのですが、PHPとJavaScriptを併用するに当たって、「本当は併用しないほうがいい」とか、「PHPとJavaScriptの併用は本当に普通の話で、処理が重くなるなどの問題は起きない」など、有識者の方からのアドバイスなどがあれば、非常に助かります。よろしくお願いします。

お礼日時:2005/01/31 20:01

こんばんは。



実現しようとすると、JavaScriptを併用する
形になると思います。

または単純にテキストボックスは常に入力可能で、
その他以外の選択項目を選択した場合はテキストフィールドに
値が入っていてもPHP側で無視する方法もあると思います。
(その他が選択され、テキストボックスに入力があった場合は、そのテキストボックスの値を使用する)

もしくは、テキストボックスに値が入っていたら
リストボックスの選択内容にかかわらず
テキストボックスの値を使用する。

この辺はどういう仕様にするかで変わってくると思いますが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ご指摘の通り、PHP側で有効or無効を判断させるのは、一応考えてみました。この場合は、登録する人に誤解を生じさせないような配置と文章を設ければ私でもできるかなと思います。ただ、できれば登録する人が間違える可能性をなるべく除きたい、と考えています。

#3のご回答も合わせて考えた場合、JavaScriptを併用すれば、「リストボックスに登録者の選択肢がなければ、そのリストボックスにテキスト入力もできるようにする」事は可能でしょうか?

何度も申し訳ありません。よろしくお願い致します。

お礼日時:2005/01/31 19:55

>リストボックスに表示させる項目に該当するものがなかった場合


「無かった場合」というのはどのような状態なのでしょうか
例えば
$list = array(0,0,0,0,0);
のような状態なのか
$list = NULL;
のような状態なのか
いずれにせよ、リストボックスに表示させる為のデータをどこかを観て判定させるわけですからどういう状態が「無かった場合」なのか分からないとアドバイスできません

具体的にソースを見せてもらえば各識者の方々から回答が得られるとおもいます


>「その他」を選んだ時だけ横にあるテキストボックスが入力可になる
PHPでは不可能です、JavaScriptを使うことになります

この回答への補足

アドバイス頂き、ありがとうございます。
「該当するものがなかった場合」というのは、「こう動かしたい」という状況から言うと、例えばリストボックスに「青いかばん」「赤いかばん」「黒いスボン」の3種類の候補から選択できるようになっているのだけれど、実際には「茶色の靴」としたいので、どこかに「茶色の靴」と入力させたい、というような事です。登録する人が、リストをざっと見て、その中に自分の登録したい内容がなかったら、そのリストボックスに直接入力できれば一番いいのですが・・・。
今はDreamWeaverを使って、フォームの形を作っていますが、実際にはMySQLと連動させる予定です。ただ、そちらも超初心者で(今からの勉強で)、ソースをご提示することができません。このような説明でお分かり頂けるでしょうか?

また、PHPにJavaScriptを埋め込むという事はできるのでしょうか?

補足日時:2005/01/31 17:51
    • good
    • 0

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