• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームのボタンが表示されない)

フォームのボタンが表示されない

このQ&Aのポイント
  • PHP初心者のため、フォームのボタンが表示されない問題に遭遇しました。具体的には、「お友だちの詳細を見る」と「メールを送信する」の2つのボタンが表示されず、何が原因なのかわかりません。この問題を解決するためにはどうすればよいでしょうか?
  • PHP初心者のため、フォームのボタンが表示されないという問題が発生しています。具体的には、「お友だちの詳細を見る」「メールを送信する」というボタンが表示されず、何が原因かわかりません。この問題を解決する方法を教えてください。
  • PHP初心者ですが、フォームのボタンが表示されません。具体的には、「お友だちの詳細を見る」と「メールを送信する」というボタンが画面上に表示されず、どうすれば表示させることができるのか分かりません。解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

> echo '<input type="hidden" name="customer_id" value="' .$id.' />'; これ、俺もよくやっちゃうんですけど、$id の 後ろをよく見てください。 ダブルクォートが足りません。 その為、それ以降のタグをブラウザが認識していません。 あと、$id が 提示されてあるスクリプトの中には、どこにも代入してあるところが見当たりません。 > GETとPOSTを使い分けることによって実現しようと考えましたが、 これは <a>タグ と <form>タグの使い分けと脳内変換しました。 あと #2 さんへのツッコみ。 > 上記のform部分がtdに囲まれていないため、HTMLとして不正なものである事が原因だと思います。 実は これは よくやるワザのようなものです。 <td><form>~</form></td> という書き方をすると、その枠の中に 妙な改行が入ってしまうのです。 cssとかで なんやかんやすれば なんとかなるのかもしれませんが。 俺が使ってるブラウザ(IE,Sleipnir,FireFox,Safari,Opera いずれもwindows版)では <form><td>~</td></form> の書き方でも ちゃんと動作してくれたりします。

panasobi
質問者

お礼

ご連絡しそびれて申し訳ありません。ばかばかしいミスでしたが、キチッとていねいにやらなければいけない、と思いました。ありがとうございました。

その他の回答 (4)

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.5

#3様 >ダブルクォートが足りません。 なるほど、見落としてました。 ツッコミどうも^^ 上記見落としたうえで、原因追究した結果(しかもHTML書いて確認したりはしなかったので)、HTMLとして不正な個所に目を付けました。 基本プログラマあがりなので、仕様や規格にこだわってしまうのが良い点でもあり、悪い点でもあり。 それでは、原因判明したということでHTML構文の確認に便利な小技(という程ではないが)を。 実行した結果、表示がうまくできない場合。 その出力結果の画面で、右クリックでソースの表示とすると出力結果のHTMLが表示されます。 そのHTMLをHTMLエディタにコピペすると、HTML要素等がハイライト表示されて確認しやすい。(※私はソースの表示の段階でハイライト表示してくれるFireFoxが大好きになりました) 私はさらにDreamWeaverに貼りつけてバリデート(構文解析/確認)、PHPソースからたどるより簡単便利。 PHPソースそのままでは使えない、W3Cのチェックツールもこの方法なら使えます。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.4

連投すみません。 > その為、それ以降のタグをブラウザが認識していません。 語弊があったので、言い直します。 それ以降のタグは、次の ダブルクォートが来るまでの間を、value の内容として認識してしまいます。 今回の場合、↓みたいな状態。 "/><td><input type=" ちゃんと検証したわけではないんですけど、多分 こんな感じだと思います。

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

>echo '<form action="mail_message.php" method="post">'; >echo '<input type="hidden" name="customer_id" value="' .$id.' />'; >echo '<td><input type="submit" name="choice" value="このお友だちを選択" /></td>'; >echo '</form">'; 上記のform部分がtdに囲まれていないため、HTMLとして不正なものである事が原因だと思います。 おそらく、各ブラウザによって表示結果が異なるのではないかという気がしますが。 form等はデフォルトでは画面表示されない(ように見える※)事は事実ですが、画面表示されないからといってHTMLとして不正な形に組んでしまうと、レンダリングエンジンがパニックをおこしてしまいます。 (※実際にはCSSで背景色等を指定すれば判りますが、画面表示もされてますし) ちなみに、name="choice" は不要に見えますね。 別に大したことではありませんが、無意味に毎回、$_POST['choice']("このお友だちを選択")が送信されていると思います。 GETとPOSTで使い分け、ってのがちょっと意味が判りませんが。 indicate_detail.php mail_message.php と、遷移先が異なってますから。 仮に、共通の遷移先だと仮定して、GETで送られた場合とPOSTで送られた場合とで、全然別の処理ってのはあまりしませんね。 どちらかと言えば、引数Action="hogehoge" / "fugafuga" / "gonyogonyo" を付加して動作が変わるという方が多いかと思います。

noname#111181
noname#111181
回答No.1

原因は、同じ名前のformやsubmitボタンが大量にできているからです。 下記のようにすれば改善するはずです。 ---------------------------------------- echo '<form action="mail_message.php" method="post">'; while($row = mysql_fetch_array($res)){ echo("<tr>"); echo("<td>".$row["customer_id"]."</td>"); echo("<td>".$row["customer_name"]."</td>"); echo("<td>".$row["customer_nicname"]."</td>"); echo("<td>".$row["phone"]."</td>"); echo("<td>".$row["mail_1"]."</td>"); echo("<td>".$row["status"]."</td>"); echo("<td><a href=\"indicate_detail.php?id=" .$id."\">詳細(GET)コンボ</a></td>"); echo '<input type="hidden" name="customer_id[' . $row["customer_id"] . ']" value="' .$id.' />'; echo '<td><input type="submit" name="choice[' . $row["customer_id"] . ']" value="このお友だちを選択" /></td>'; echo("</tr>\n"); } echo '</form">';

関連するQ&A