inputのvalueを変数として使うには

このQ&Aのポイント
  • inputのvalueを変数として使用する方法について説明します。
  • 下記のソースコードでは、緯度と経度の値をinputから取得し、map.phpのパラメータに渡す方法が記述されています。
  • 具体的な方法は、JavaScriptを使用してinputの値を取得し、aタグのhref属性に値を埋め込むことです。
回答を見る
  • ベストアンサー

inputのvalueを変数として使うには

下記ソースのaタグ内map.phpのパラメータ({緯度}・{経度}の部分)にinputで入力した値を渡したいので すが、どうすれば良いでしょうか? <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php?lat={緯度}&lng={経度}">マップを表示</a> </form>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

こんな感じ? <script> function func(obj) { obj.href+="?lat="+obj.parentNode.elements["lat"].value; obj.href+="&lng="+obj.parentNode.elements["lng"].value; } </script> <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php" onclick="func(this)">マップを表示</a> </form> formとaの関係次第だね

25taku
質問者

お礼

上記ソースでばっちりうまくいきました! おっしゃっていたformとaの関係のところなのですが 私のソースは下記のような構成となっていてノードが参照できません。 この場合はどのように参照すれば良いでしょうか? ご教授お願い致します。 <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> <table> <tr><td>・・・</td><tr> <tr><td> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php" onclick="func(this)">マップを表示</a> </td><tr> </table> </form>

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

>この場合はどのように参照すれば良いでしょうか? formにidをふってdocument.getElementById("フォームのid")でつかむか document.forms["data"]みたいにすればつかめるかも。 アンカーがフォームに必ず含まれるならロジック的には オブジェクトからformになるまでparentNodeをさかのぼっていくという手もあります。 <script> function func(obj) { var f=getParentNode(obj,"form"); obj.href+="?lat="+f.elements["lat"].value; obj.href+="&lng="+f.elements["lng"].value; } function getParentNode(obj,nodeName){ var n=obj.parentNode; while(n){ if(n.nodeName==nodeName.toUpperCase()) return n; n=n.parentNode; } } </script> <form action="index.php" method="POST" enctype="multipart/form-data" name="data"> 緯度:<input name="lat" type="text" value="" size="20"> 経度:<input name="lng" type="text" value="" size="20"> <a href="map.php" onclick="func(this)">マップを表示</a> </form>

25taku
質問者

お礼

function func(obj) { obj.href+="?lat="+document.getElementById("フォームのid").elements["lat"].value; obj.href+="&lng="+document.getElementById("フォームのid").elements["lng"].value; } この記述でシンプルに出来ました。 解説ありがとうございました!本当に助かりました!

  • think49
  • ベストアンサー率59% (285/482)
回答No.1

パラメータを渡すだけなら JavaScript は不要だと思いますが…。 <a href="map.php?lat={緯度}&lng={経度}">マップを表示</a>  ↓ <input type="submit" value="submit">

25taku
質問者

補足

最終的にはmap.phpではなくindex.phpにデータを渡したいのです。 途中で座標を表示させるために、javascriptやphpを使ってinput内のデータを 抜き出そうと考えております。

関連するQ&A

  • POSTデータのNAME属性をVALUEによって取得する方法

    HTML→PHPのPOSTデータのやりとりについて、 【HTML】 <form name="form1" method="post" action="xxx.php"> <input name="01" type="text" value="1"> <input name="02" type="text" value="0"> <input name="03" type="text" value="0"> <input name="04" type="text" value="1"> <input type="submit" name="Submit" value="送信"> </form> 【xxx.php】 フォームから送信されたデータを使って、「value」が"1"の「name」を拾うのにはどのように書けばいいでしょう? ↓このように取得したいです。 $data[0]="01"; $data[1]="04"; よろしくお願いします。

    • ベストアンサー
    • PHP
  • 複数のvalue値を返すには

    Aを選択した時10、Bを選択した時100、Cなら1000と <input type="text" name="TEXT" value="">に表示されるように以下のようなjavascriptを記述しましたが、 Aの時10と20を、Bの時100と200、Cの時1000と2000が もうひとつの<input type="text" name="TEXT2" value="">に表示できるようにするにはどうしたらよいのでしょうか。 記述方法を教えていただければ一番いいのですが、サンプルがあるページでもいいので、教えてください。 <script type="text/javascript"> <!-- function kai(){ document.FORM.TEXT.value = document.FORM.num.value; } //--> </script> </head> <body> <form name="FORM"> <input type="text" name="TEXT" value=""> <select name="num" onChange="kai()"> <option value="10">A</option> <option value="100">B</option> <option value="1000">C</option> </select> </form>

  • 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 method="post" name="addForm" id="addForm" action="aaa.php"> <input type="text" name="textA" id="textA"> <form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_fileA" id="upload_fileA"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text2" id="text2"> <input type="file" name="upload_fileB" id="upload_fileB"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormC" id="uploadFormC" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text3" id="text3"> <input type="file" name="upload_fileC" id="upload_fileC"> <input type="button" value="アップロード"> </form> <input type="text" name="textB" id="textB"> <input type="submit" value="送信"> </form> のような、formが入れ子になってしまっているformがあります。 これを回避する方法を教えていただきたいです。 条件としては、 ・見た目はこの順番がいい。 ・javascript、CSS等なんでも良いです。 ・各「アップロード」ボタンで、text1,2,3,4、upload_fileA,B,C,Dを送信、「送信」ボタンでtextA,Bを送信したい。 以上、お願いいたします。

    • ベストアンサー
    • HTML
  • value内に変数を入れたい

    お世話になります。 <INPUT type="text" name="seikai" size="10" value="" onfocus="this.blur()"> このvalue=""の中にjavascriptで定義した変数を入れる方法ってあるんでしょうか? 

  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • 再度読み込みは出来ないのでしょうか?

    各テキストボックスに値を入れて、 C11 = a11 * b11 + a12 * b21 + a13 * b31、 c12 = a11 * b12 + a12 * b22 + a13 * b32、 : : c21 = a21 * b11 + a22 * b21 + a23 * b31 c22 = a21 * b12 + a22 * b22 + a23 * b32・・・ としたいのですが、うまくロジックが思いつきません。 単純に式をずらずら書いたのですが、c12以降の欄がすべてゼロになってしまいます。 いい方法を教えてください。お願いします。 <head> <script> function kei(){ var form_a=document.getElementById('A'); var form_b=document.getElementById('B'); var form_c=document.getElementById('C'); var keic11 = 0; var keic12 = 0; : : keic11=parseInt(form_a.a11.value) * parseInt(form_b.b11.value) * parseInt(form_a.a12.value) * parseInt(form_b.b21.value) + parseInt(form_a.a13.value) * parseInt(form_b.b31.value); form_c.c11.value = keic11; keic12=parseInt(form_a.a11.value) * parseInt(form_b.b12.value) + parseInt(form_a.a12.value) * parseInt(form_b.b22.value) + parseInt(form_a.a13.value) * parseInt(form_b.b32.value); form_c.c12.value = keic12;     :     : } </script> </head> <body> <table border = 1> <form id = "A"> <tr> <td> <input type = "text" size = 5 name = "a11"></input> </td> <td> <input type = "text" size = 5 name = "a12"></input> </td> <td> <input type = "text" size = 5 name = "a13"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "a21"></input> </td> <td> <input type = "text" size = 5 name = "a22"></input> </td> <td> <input type = "text" size = 5 name = "a23"></input> </td> </tr> </form> </table> <table boeder = 1> <tr> <input type = "button" onClick="kei()" value = "×"></input> </tr> </table> <table border = 1> <form id = "B"> <tr> <td> <input type = "text" size = 5 name = "b11"></input> </td> <td> <input type = "text" size = 5 name = "b12"></input> </td> <td> <input type = "text" size = 5 name = "b13"></input> </td> <td> <input type = "text" size = 5 name = "b14"></input> </td> <td> <input type = "text" size = 5 name = "b15"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b21"></input> </td> <td> <input type = "text" size = 5 name = "b22"></input> </td> <td> <input type = "text" size = 5 name = "b23"></input> </td> <td> <input type = "text" size = 5 name = "b24"></input> </td> <td> <input type = "text" size = 5 name = "b25"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "b31"></input> </td> <td> <input type = "text" size = 5 name = "b32"></input> </td> <td> <input type = "text" size = 5 name = "b33"></input> </td> <td> <input type = "text" size = 5 name = "b34"></input> </td> <td> <input type = "text" size = 5 name = "b35"></input> </td> </tr> </form> </table> 答え <table border = 1> <form id = "C"> <tr> <td> <input type = "text" size = 5 name = "c11"></input> </td> <td> <input type = "text" size = 5 name = "c12"></input> </td> <td> <input type = "text" size = 5 name = "c13"></input> </td> <td> <input type = "text" size = 5 name = "c14"></input> </td> <td> <input type = "text" size = 5 name = "c15"></input> </td> </tr> <tr> <td> <input type = "text" size = 5 name = "c21"></input> </td> <td> <input type = "text" size = 5 name = "c22"></input> </td> <td> <input type = "text" size = 5 name = "c23"></input> </td> <td> <input type = "text" size = 5 name = "c24"></input> </td> <td> <input type = "text" size = 5 name = "c25"></input> </td> </tr> </form> </table> </body>

  • php内のformのvalueに変数の値をいれたい

    どうぞよろしくお願いします。 php内のformのvalueに変数の値をいれたいのですが、下記の様に書くと<?=$a?> がそのままソースに出てしまいます。 どの様に書けば変数の値をvalueに格納できるでしょうか? <?php $a='abcd'; print'<form method="post" action="abc.php">'; print'<input type="hidden" name="a" value="<?=$a?>">'; print'</form>'; ?>

  • 変数の書き方について

    下記のようなプログラムを作成しました。 この状態で20行目のechoを実行しても何も表示されません。 15行目にある$emailを表示させるためには、 19行目と20行目の辺りになんらかの変数を書かなければならないと思うのですが、 具体的にはどのような内容を記載すればよろしいのでしょうか? ご教授のほどよろしくお願いします。 1:<form method="post" action="<?=$_SERVER["PHP_SELF"]?>"> 2:<input type="hidden" name="act" value="updconf"> 3:<input type="hidden" name="roomid" value="<?=$roomid ?>"> 4:<input type="hidden" name="hiduke" value="<?=$hiduke?>"> 5:<input type="hidden" name="jikan" value="<?=$jikan?>"> 6:<input type="submit" name="sub" value="予約更新"> 7:</td> 8:<td>お名前</td> 9:<td> 10:<input type="text" name="yoyakusha" value="<?=$user ?>"> 11:</td> 12:</tr> 13:<tr> 14:<td>メールアドレス</td> 15:<td><input type="text" name="email" value="<?=$email ?>"></td> 16:</tr> 17:</form> 18: 19:<?php 20:echo $email; 21:?>

    • ベストアンサー
    • PHP
  • 指定のinputに入力

    恐れいります。 <form action="./xxx.cgi" method="POST"> <input type="text" name="name1"> <input type="text" name="name2"> <input type="text" name="name3"> <input type="text" name="name4"> <input type="text" name="name5"> <input type="submit" value="送信"> </form> と、5つの入力欄があり、別ウィンドウから、指定の場所に代入することは可能でしょうか。例えば、name1のエリアに、別ウィンドウからformで「test」という文字を送信して入力する感じです。 よろしくお願いします。

専門家に質問してみよう