人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP初心者です。テキストを記入し、押したボタンによって、違うURLに
飛ばすフォームを作成しようとしています。
<?php
$strKey=urlencode($_POST[’keywd’]);
switch($_POST[’xyz’]){
case ”aa”:
$url=”http://www.aaa”;
break;
case ”bb”:
$url=”http://www.bbb”;
break;
}
header(”Location: ”.$url.$strKey);
?>
と設定し、フォームで
<form method=”POST” action=”○○.php”>
<input type=”text” name=”keywd” size=”20” />
<input type=”submit” name=”xyz” value=”aa” />
<input type=”submit” name=”xyz” value=”bb” /></form>
とすると、「aaa」という表示でボタンは動くのですが、
このvalueを任意の文字に変えたいのです。
どの様に変更すれば、良いのでしょうか?
どうか、よろしくお願いします。

●質問者: edoman
●カテゴリ:ウェブ制作
✍キーワード:AA AAA BB CASE PHP
○ 状態 :終了
└ 回答数 : 11/11件

▽最新の回答へ

1 ● Asuca
●16ポイント

<input type=”submit” name=”xyz” value=”aa” />

の aa を消せば

<input type=”submit” name=”xyz” value=”” />

任意の文字になりますが?意味が違うかな?

◎質問者からの返答

わかりにくくて、すみません!

「value=”aa”」と記述しないと作動しないのです。

普通「value」には、表示させたい文字を乗せると思うのですが、

これに「aa」としか表示させることができなくて、困ってる次第です。


2 ● Paul
●16ポイント

えーーーっと

<input type=”submit” name=”aa” value=”aa” />

<input type=”submit” name=”bb” value=”bb” />

<input type=”submit” name=”xyz” value=”送信” />

<input type=”submit” name=”xyz” value=”修正” />

とか文字を2バイトにしたいのでしょうか???


(上記だと仮定して)

<input type=”submit” name=”aaa” value=”送信” />

<input type=”submit” name=”bbb” value=”修正” />

と言う風にname属性を変えて、

if(!empty($_POST[’aaa’]))

と言う風にしたほうが楽です。


間違ってたらポイント不要なので

質問を具体的にしてコメントお願いします。

◎質問者からの返答

言葉足らずで、ご迷惑おかけします。

おっしゃる通り、文字を2バイトにし、ボタンは5個くらい

設定したいのです。

例えば、ヤフーのトップページの検索に「検索」と「辞書」が

ありますが、こんな風にするにはどうすれば良いのかなと。

仮定として教えてもらったように試してみたのですが、

動きませんでした。

name=”xyz”に「case ”aa”」と「case ”bb”」の区別を

付けられないものでしょうか?

「name=”xyz[aa]”」とすると作動しないのです。


3 ● Asuca
●0ポイント

あぁ 意味わかりました

ボタンの表示を変えたかったのね

<form method=” POST” action=” ○○.php”>

<input type=”text” name=”keywd” size=”20”>

<INPUT type=”submit” name=”xyz” value=”aa”>

<input type=”submit” name=”name” value=”任意の名前”>

</form>

FROM構文は FROM内で与えられた変数全部持っていきますから上記のようの関係ない名前でボタン作ってその上に書いてあれば良いかと。。

◎質問者からの返答

こう書くと「aa」と「任意の名前」の二つのボタンができて、

「aa」は作動して、「任意の名前」が作動しなかったです。

僕があまりわかってないので、混乱させてすみません。

PHPも質問するのも難しいです。


4 ● Paul
●0ポイント

http://php.s3.to/man/function.array-key-exists.html

array_key_exists

2の回答者です。


emptyじゃなくて

array-key-exists() か isset()を試してみてください。

(失礼しました)

array-key-exists($_POST, ”aaa”)

isset($_POST[”aaa”])


if($_POST[”aaa”] == ”2バイト文字”)でも

行けるかもしれないけど、ブラウザによって

挙動が異なる可能性もありえます。

◎質問者からの返答

ご丁寧にありがとうございます。

これで動きそうな感じなのですが、僕の記述方法が悪いのか、

なぜか作動しません。。

もし、お手数でなければ、最終的にどう書けばいいのかも

教えてもらえたら最高です!

本当に初心者まるだしで、すみません。


5 ● DW230
●16ポイント

<form method=” POST” action=” ○○.php”>

<input type=”text” name=”keywd” size=”20”>

<INPUT type=”hidden” name=”xxx” value=”aa”>

<INPUT type=”hidden” name=”yyy” value=”bb”>

<input type=”submit” name=”name” value=”任意の名前”>

</form>

隠したい変数はsubmitでなくhiddenを使います

◎質問者からの返答

ボタンの表示はOKになりました!

いや本当に助かりました。ありがとうございます!

ですが、hiddenを2つ設定し、ボタンも2つ置くと、どちらのボタンも

あとで書いた方(ここでは「bb」)のURLに飛んでしまいます。

hidden部分のvalue属性をsubmitボタンそれぞれに反映させる

必要があると思うのですが、これはどうすれば良いのでしょうか?

あと、もう少しで作動する感じです。

どうか、よろしくお願いします。


1-5件表示/11件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ