【解決方法あり】formによるパラメータ送信での問題を解決する方法

このQ&Aのポイント
  • HTML初心者の方にとって、formによるパラメータ送信は難しい問題です。特に、送信方法によってパラメータが異なることがあり、困惑していることでしょう。この記事では、formを使用してパラメータをpostする際の問題点と解決方法について詳しく解説します。
  • formに入力された文字列を送信する際、送信ボタンを押すだけでは思うようなパラメータが送信されない場合があります。特に、テキストに文字を入れてEnterキーを押した場合、意図しないパラメータが送信されることがあります。本記事では、この問題に対する解決策を提案します。
  • formからパラメータを送信する際に意図したパラメータを送信するためには、JavaScriptを利用する方法があります。onclickイベントを使用することで、ボタンを押した際に任意のパラメータを送信することができます。また、Enterキーでの送信時にもJavaScriptを使用してパラメータを送信する方法があります。本記事では、具体的なコード例を示しながら、解決方法を詳しく解説しています。
回答を見る
  • ベストアンサー

formによるパラメータ送信がうまくいきません

こんばんは。 HTML初心者です。 formによるパラメータを送信しようと考えているのですが、 送信方法によってパラメータが異なってしまい、困っています・・・。 以下のようなformを使って、パラメータをpostしています。 <form name="form1" action="http://xxx/xxx/xxx" method="post"> <input type="text" name="text1"> <input type="submit" value="sousin" name="submit1"> </form> 送信してみたところ、送信方法によって、送るパラメータに差異があることに気が付きました。 ************************************************** 1.テキストに文字列を入れて、送信ボタン(sousin)を押す。 ->リクエストパラメータが、submit1=sousin と text1=文字列 になる。 2.テキストに文字を入れて、フォーカスがテキストにある状態で、Enterを押す。 -> リクエストパラメータが、text1=文字列 だけになる。 ************************************************** 1.と2.どちらの場合でも、 submit1=sousin と text1=文字列 を送りたいと考えています。 クエリストリングは使いたくないので、 onclickをつけてみたり、JavaScriptで少し考えてみましたが、 どうしてもうまくいきませんでした・・・。 2.のように、Enterを押したときでも、 submit1=sousinを送るようにするのはどうしたらよいでしょうか?? 宜しくお願い致します。

  • HTML
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

確実に送りたいものは type="hidden" でformに埋め込んでしまってください。   <form name="form1" action="​http://xxx/xxx/xxx"​ method="post">   <input type="text" name="text1">   <input type="hidden" name="submit1" value="sousin">   <input type="submit" value="sousin">   </form>

ijhnb6543f
質問者

お礼

shimix様、こんばんは。 教えていただいた方法で出来ましたっ! hidden属性で隠してしまう方法があるのですね。 有難うございました☆

関連するQ&A

  • formヘルパーを使わないと、パラメータを取得できないのでしょうか?

    symfonyを使用してますが、 formヘルパーを使わないと、リクエストのパラメータを取得できないのでしょうか? --------------------------------------------------- <form action="/web/xx.php/xx/xxx" enctype="text/plain" method="post"> <input type="text" name="model" value="50"> <input type="submit" value="検索"> </form> --------------------------------------------------- 上記だと、パラメータを取得できるが、下記だと取得できる。 --------------------------------------------------- <?php echo form_tag('/web/xx.php/xx/xxx') ?> <?php echo input_tag("model","50") ?> <?php echo submit_tag('検索')?>

    • 締切済み
    • PHP
  • form 内 onChange

    恐れいります。 <form>内で、もう一つ<form>を作成し、送信したいのですが、 なかなかうまくいきません。form内のformは、selectボックスで、選択時に自ページにsubmitさせるようにしたいのですが。。 <form action="./xxx.cgi" method="POST"> <input type="text" name="xxx"> <form action="./" method="POST"> <select name="YYY" onChange="this.form.submit()"> <option value="ddd">ddd <option value="eee">eee </select></form> <input type="text" name="xxx"> <input type="submit" value="送信"> </form> よろしくお願いします。

    • ベストアンサー
    • HTML
  • 2つのFormタグの動作について

    同じページに2つのFormタグを設置したいと考えています。ページが長いため、上部と下部それぞれにFormタグを設置したいと考えています。 <form name="upForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> --------------- 他の処理 --------------- --------------- 他の処理 --------------- --------------- 他の処理 --------------- <form name="downForm" action="xxx.cgi" method="post"> <input type="text" name="name1"> <input type="submit" value="送信"> </form> 下のFormの送信ボタンを押すと、上のFormが動作しているようで、下のFormの入力値が反映されません。それぞれのFormをそれぞれの送信ボタンで動作させる方法につきまして、ご存知の方がいましたらぜひ教えていただきたいと思います。 よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • formタグ

    HTMLで、formを使用し、CGIへテキストエリアのデータをpostしたいと 考えております。 テキストエリアを3つ、ボタンを1つ設けるならば 通常以下のようにすると思います。(必要部分の抜粋) <form action="foo1.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行"> </form> こうすると、実行ボタンをクリックすると、text1、text2、text3のテキストエリアに 記述されているテキストが送信されますが、ここにボタンをもう一つ設け、 上記3つのデータを別のCGIに送信したいのですが、 この場合どのようにHTMLを記述したらよいでしょうか? 新たに下記のようにformタグを設けると、テキストエリアは6つになってしまいますし。。。 <form action="foo2.cgi" method="post" ENCTYPE="multipart/form-data"> <input type="text" name="text1" value="text1" size=50 maxlength=100> <input type="text" name="text2" value="text2" size=50 maxlength=100> <input type="text" name="text3" value="text3" size=50 maxlength=100> <input type="submit" name="aaa" value="実行2"> </form> どなたか分かる方情報頂けますか。

    • ベストアンサー
    • HTML
  • form部品の縦を揃えたいです。

    form部品の縦を揃えたいです。 具体的には, <form method="POST" action="cgi-bin/xxx.cgi"> メールアドレス:<input type="text" name="mail1"> メールアドレス(確認用):<input type="text" name="mail2"> <input type="submit" value="送信"> <input type="reset" value="取消"> </form> としたときに,テキストボックスの縦を揃えたいのですが,CSSで可能でしょうか。 よろしくお願いします。

  • javascript form送信後の動作

    以下のスクリプトでiframeにデータは送信できているんですが、<input type="text">に入力したテキストが残ってしまいます。どのように記述したらうまくいくでしょうか? <script type="text/javascript"> function send(){ var frm=document.txt_submit; frm.submit(); frm.reset(); } </script> <form name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" name="ctxt" size="20" value=""> <input type="button" value="送信" onclick="return send();"> </form>

  • formでPOSTするのと同じ動作をボタンとjavascriptで実現したいのですが

    <form name="myFORM" method="POST" action="xxx.php"> <input type="text" name="NAME"> <input type="submit" value="送信"> </form> 上記と同じ動作を <button onclick="fpost('tanaka','POST','xxx.php')">送信</button> とjavascriptで実現したいのですが可能でしょうか? 可能でしたらどのようなスクリプトになりますでしょうか? document.myFORM.submit();とかではなく、formタグを全く使わずPOSTしページ遷移したいのですが。 XMLHttpRequestとlocation.replace()とかでできるのでしょうか?? すみませんがよろしくお願い致します。

  • formでENTERとSUBMITボタンを押した場合のパラメータの分け方

    formでenterキーを押して内容を送信した場合とSUBMITボタンを押して内容を送信した場合でパラメータによって場合わけしたいのですがどのようにすればよいでしょうか? SUBMITボタンをクリックした場合は以下のように記述をすればbを使うことができるのですが <input id="a" type="submit" name="b" value="ボタン" /> ENTER用のパラメータをつけるやり方がわかりません。 回答よろしくお願いいたします。

  • PHPでformで送信された結果のページを取得

    例えば、 http://www.example.com/test のページに、以下のようなフォームがあり、 <form name="form" method="post"> <input type="text" name="key" value="" /> <input type="submit" name="submit" value="送信" /> </form> 例えば、文字数をカウントするプログラムを作ったとして、 テキストBOXに適当な文字、例えば「テスト」と書いて送信をクリックすると、 URLをそのままで、テキストBOXに入力された「テスト」の文字数である「3」と表示するような事をPHPで作ったとします。 これは、手動で実際に入力して送信をクリックしなくても、 PHPで操作して、結果ページの情報を取得することって可能ですか? PHPでテキストに書く文字を指定して、(仮想的に)送信を押して、表示されるページのHTMLソースを取得したいのです。 もし可能でしたらお願いします。

    • ベストアンサー
    • PHP
  • 別formのhidden項目を自form値として送信したい

    同ページ内に <form name="form1" action="aa"> <input type="text" value="123"> <!-- hidden項目は無い場合もある --> <input type="hidden" name="form1_1" value="xxx"> <input type="hidden" name="form1_2" value="yyy"> <input type="submit"> </form> <form name="form2" action="bb"> <input type="text" value="456"> <input type="hidden" name="form2_1" value="www"> <input type="hidden" name="form2_2" value="zzz"> <input type="submit"> </form> といった感じのformタグをおいています。 そこで、form2を送信する時に、form1のhiddenのみform2のformValueとして送信したいのですが、どんな風に飛ばしたらよいのでしょうか? というより、from2を飛ばすときに、他のformのhidden項目があったら自formの値として送信することってできるんでしょうか? javascriptでできるんでしょうか? 素人質問ですいませんが、何か足がかりになるようなものをご教授いただければと思います。

専門家に質問してみよう