つい集めてしまうものはなんですか?

javascriptで作ったフォームをphpに送信したいのですが、上手く送信できません。
どのようにすれば上手く送信することができるでしょうか?
回答お願いします。

javascript側のソース
<body>
<form name="nform1" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問1</p>
<p>
(1)<input type="text" name="kaitouran11" size="20">
(2)<input type="text" name="kaitouran12" size="20">
(3)<input type="text" name="kaitouran13" size="20">
(4)<input type="text" name="kaitouran14" size="20">
</p>
</form>

<form name="nform2" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問2</p>
<p>
(1)<input type="text" name="kaitouran21" size="20">
(2)<input type="text" name="kaitouran22" size="20">
(3)<input type="text" name="kaitouran23" size="20">
(4)<input type="text" name="kaitouran24" size="20">
</p>
</form>

<form name="nform3" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問3</p>
<p>
(1)<input type="text" name="kaitouran31" size="20">
(2)<input type="text" name="kaitouran32" size="20">
(3)<input type="text" name="kaitouran33" size="20">
(4)<input type="text" name="kaitouran34" size="20">
</p>
</form>

<input type="button" value="送信" onClick="send()">
</body>

php側のソース
<body>
<p>問1</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問2</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問3</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?>
</p>
</body>

A 回答 (5件)

結論から述べると、以下の回答No.1が事実を物語っています。


http://oshiete.goo.ne.jp/qa/8145396.html

複数のフォームを1つのリクエストにまとめることはHTTPの仕様上不可能です。素直にAjaxで分割送信させましょう。単に「対応しやすい」「確認しやすい」だけでとどめられると何か納得がいかないので一応確認させていただきます。

問1に全て回答

Ajaxで送信させる

問2に全て回答

Ajaxで送信させる

採点結果をチェック

ということをしたいんでしょうか・・・?
    • good
    • 0

>> htmlからphpに



HTML全部手打ちするよりも配列データとして格納しておいたほうがラクだと思いませんか?ファイルを分けるにしても、PHPファイルからPHPファイルへ送信する形を取ると思います。わざわざ静的なHTMLファイルを手作業で作るメリットは皆無と言えるでしょう。

>> 複数個フォーム

他の回答者さんからも指摘がありますが、どうしてフォームを分ける必要があるんでしょうか?

<script type="text/javascript">
document.forms['nform1'].submit();
document.forms['nform2'].submit();
document.forms['nform3'].submit();
</script>

のように全て送信するなら分けても分けなくても同じ、というか普通は分けません・・・私が前の回答で提示したサンプルで出力されたHTMLソースを見てもらっても分かると思いますが、「複数のfieldset要素を外側から1つのform要素に含める」という形を取っています。

form要素を分けるときは、「問2だけを送信」といった形を取りたいときだけです。

この回答への補足

>PHPファイルからPHPファイルへ送信する形
たしかに、フォームとかだけを送るならその方式を持ち要りますがgoogleマップなどのものはPHPではなくajaxを持ち要りますよね。その一部の中身について今回質問させていただいているのです。ですのでhtmlから行おうと考えているのです。

>> 複数個フォーム
今回は全フォームを送りますが、form要素を分けるときは、「問2だけを送信」といった形にも対応しやすいメリットがあったりプログラムの確認がしやすいなどのメリットがあります。

補足日時:2013/11/23 11:55
    • good
    • 0

サンプル


http://pastebin.com/DVMFd6NS

こういうものを作りたいんでしょうか。とりあえずコピペで動くので試してみてください。

この回答への補足

回答ありがとうございます。
形式としては教えていただいたurlのような内容ですが、
コンセプト的なものは似ているのですが
htmlからphpに複数個フォームを目的とする場所に送信したいの
です。

補足日時:2013/11/22 21:54
    • good
    • 0

javascriptが設定されていないことはおいておいて


とりあえずは、formを一つにして普通にサブミットするところから始めてください
問いごとにformをわけてしまえば結局問いごとにしか値はとびません

この回答への補足

サブミットするというのはボタン部分の
onclick→onsubmitでしょうか?
それとも、
<script type="text/javascript">
document.forms['nform1'].submit();
document.forms['nform2'].submit();
document.forms['nform3'].submit();
</script>
というようにすることでしょうか?
後者であるなら現在上記のようにしてありますが、
上手く目当ての場所にフォームが送信できません(ページは切り替わるのですが...)

補足日時:2013/11/22 21:50
    • good
    • 0

とりあえず。

。。

> javascript側のソース

javascript が見当たらんとです。

かろうじて「 onClick="send()" 」で、その痕跡があるぐらい。

あと、まぁ、PHPの書き方がなげやり過ぎ。

JavaScriptとか「この言葉が何を指しているのか」とか いろいろ ちゃんと理解してからにした方がいい気がする。

この回答への補足

すいません。日本語がおかしくて...
javascriptという表現おかしいですよね
結局何がやりたいかというと
htmlからphpにフォームを送信したいということです。
しかし、今回は複数個フォームで用意しているので
上手くひとつのときみたいに値がphpに渡らなくて困っているのです。
ソースを訂正させていただくと
htmlのソース
<script type="text/javascript">
document.forms['nform1'].submit();
document.forms['nform2'].submit();
document.forms['nform3'].submit();
</script>
javascript側のソース
<body>
<form name="nform1" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問1</p>
<p>
(1)<input type="text" name="kaitouran11" size="20">
(2)<input type="text" name="kaitouran12" size="20">
(3)<input type="text" name="kaitouran13" size="20">
(4)<input type="text" name="kaitouran14" size="20">
</p>
</form>

<form name="nform2" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問2</p>
<p>
(1)<input type="text" name="kaitouran21" size="20">
(2)<input type="text" name="kaitouran22" size="20">
(3)<input type="text" name="kaitouran23" size="20">
(4)<input type="text" name="kaitouran24" size="20">
</p>
</form>

<form name="nform3" method="POST" action="./kaitou1.php" enctype="text/plain">
<p>問3</p>
<p>
(1)<input type="text" name="kaitouran31" size="20">
(2)<input type="text" name="kaitouran32" size="20">
(3)<input type="text" name="kaitouran33" size="20">
(4)<input type="text" name="kaitouran34" size="20">
</p>
</form>

<input type="button" value="送信" onClick="send()">
</body>

phpのソース
php側のソース
<body>
<p>問1</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran11'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran12'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran13'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran14'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問2</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran21'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran22'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran23'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran24'], ENT_QUOTES, 'UTF-8')); ?>
</p>
<p>問3</p>
<p>(1)<?php print(htmlspecialchars($_POST['kaitouran31'], ENT_QUOTES, 'UTF-8')); ?>
(2)<?php print(htmlspecialchars($_POST['kaitouran32'], ENT_QUOTES, 'UTF-8')); ?>
(3)<?php print(htmlspecialchars($_POST['kaitouran33'], ENT_QUOTES, 'UTF-8')); ?>
(4)<?php print(htmlspecialchars($_POST['kaitouran34'], ENT_QUOTES, 'UTF-8')); ?>
</p>
</body>

補足としてphpのソースはこのような書き方しか現状知らないので
なげやりと抽象的おっしゃられても困ります。具体的にどのように修正すればいいのでしょうか?

補足日時:2013/11/22 21:45
    • good
    • 0

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


おすすめ情報