• ベストアンサー

URLから値(可変)を取得して値を引き渡す

http://ample.com/goo?aaaa=12345 ?以降を取得して値を引き渡したいのですが location.searchで?以降を取得 取得した値を=で分割 formを使って情報を引き継ごうと思うのですがうまくいきません <script type="text/javascript" language="javascript"> <!-- var QS = new Array; if (location.search.length > 1) {  var m_Array = location.search.substr(1).split("&");  for (aaaax in m_Array) {   QS.push(m_Array[aaaax].split("="));  } } //--> <form action="form.cgi" method="post" name="FROM1" > <input type="hidden" name="aaaa" value=""> <script> <!-- document.forms["FROM1"].aaaa.value = location.search.substr(6,30); //--> </SCRIPT> </FORM>

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.2

こんにちは ?****=#### 1つだけで####の部分をとりたいのであれば ※****は必ず4文字です <form action="form.cgi" method="post" name="FROM1" > <input type="hidden" name="aaaa" value=""> <script> <!-- document.forms["FROM1"].aaaa.value = location.search.substr(6,30); //--> </SCRIPT> </FORM> だけでもいいですけど? location.search.substr(6,30)は?****=####となっているところの7文字目から31文字目を取り出していますので そうじゃなくて『 & 』でつなげてあって複数の中から1つだけ取りたいのであれば (例) h ttp://***.html?aaaa=12345&bbbb=6789 <script type="text/javascript"><!-- var QS = new Array; if (location.search.length > 1) {  var m_Array = location.search.substr(1).split("&");  for (aaaax in m_Array) {   QS.push(m_Array[aaaax].split("="));  } } //--></script> <!--↑</script>記述し忘れてますよ//--> <form action="form.cgi" method="post" name="FROM1" > <input type="text" name="aaaa" value=""> <script type="text/javascript"><!-- document.forms["FROM1"].aaaa.value = QS[0][1]; //--></script> </form> になります aaaa=12345の『 12345 』をとるには『 QS[0][1] 』 bbbb=6789の『 6789 』をとるには『 QS[1][1] 』

その他の回答 (1)

noname#84373
noname#84373
回答No.1

<HTML> <form action="form.cgi" method="post" name="FROM1" > <input type="text" name="aaaa" value=""> </FORM> <script type="text/javascript" language="javascript"> window.onload=function(){ var qs=[]; if(s=location.search){ for(i=0,q=s.replace(/^\?/,'').split('&');i<q.length;i++){ t=q[i].split('='); qs[t[0]]=t[1]; } } document.forms["FROM1"].aaaa.value = qs['aaaa']; } </SCRIPT> </HTML>

関連するQ&A

  • JavaScriptで取得した値について

    初めまして、Etizenと言います。 早速質問なのですが、JavaScriptで 例えば、 <SCRIPT LANGUAGE="JavaScript"> <!--  var QS = new Array;  if (location.search.length > 1)  {   var m_Array =    location.search.substr(1).split("&");    for (idx in m_Array)    { QS.push(m_Array[idx].split("="));    }  } //--> </SCRIPT> という、配列でデータを取得した場合にこれを、HTMLの <input type="text" name="STFCD" Value> のValueの中に仕込むことは可能でしょうか? よろしくお願い致します

  • javascriptで取得した値をテキストボックスに・・・

    IE5.5です。 javascriptで取得した値をテキストボックスに格納したいのですが、 うまくいきません。 <SCRIPT language="javascript"> var varVal=true </script> <form> document.write("<input type='hidden' name='myVal' vaue="+varVal+">"); </form> javascriptが初心者でよくわからないのですが、 例えば <input type="hidden" name="myVal" value=varValに格納された値> といった書き方もできるのでしょうか? よろしくご教授願います。

  • select要素のvalueを配列で取得したいです

    select要素のvalueを配列で取得したく、下記のサンプルを動かそうと試みました。 <html> <head></head> <body> <form> <!-- ここに<select name="c1">~<select name="c20">の20個のselectがあるとする --> </form> <input type="button" value="はい" onclick="test(this.form)"> <script type="text/javascript"> function test ( form ) { var values = new Array(); for ( var i=0; i < 20; i ++ ) { var elm = form.elements['c'+i]; values[i] = elm.options[elm.selectedIndex].value; } } </script> </body> </html> このようなサンプルを動かそうとしたのですが、 var elm = form.elements['c'+i];のところの['c'+i]が正しくないようで 「elm is underfind」というエラーが出てしまいます <script> function myForm (form) { var values = new Array(); for ( var i=0; i<20; i++ ) { var elm = form.elements[i]; values[i] = elm.options[elm.selectedIndex].value; document.write(values[i] + "<br />"); } } </script> インデックス名を'c'+iからiにすると取得できるのですが、 ブラウザが読み込みをやめない状態になってしまいます。 select要素のnameはc1から始まりc20と何も換えていません。 何が間違っているのでしょうか。

  • 値の受け渡しについて

    JavaScriptを使用しa.htmlからb.htmlへ 値の受け渡しについて分らない事があります。 やりたいことはa.html内にある <a href="b.html">あああ</a>の「あああ」の値を b.html内にある<INPUT>に入れたいのです。 現在記述しているコードを下記記しますので 何方かご教授お願いします。 ■a.html <html> <a href="b.html" onclick="this.href=this.href+'?'+encodeURIComponent(this.innerHTML)">あああ</a> </html> ■b.html <html> <script type="text/javascript"> query = decodeURIComponent( location.search.slice(1,1000) ); document.getElementById('in_name').value = query; </script> <form> <INPUT type="text" id="in_name" name="in_name" value=""> </form> </html>

  • オブジェクトから値を取得する方法について

    QNo.7391687 の続きで質問をもうひとつお願い致します。 いろいろと調べたり、試行錯誤しながら、 erlectオブジェクトの値を取得して、 取得した値の出力をしたいと考えています。 ご教授頂ければ幸いです。 どうぞよろしくお願いいたします。 【ソース】 ------------------------------------------------------- <head> <title>問合せ入力フォーム</title> <script type="text/javascript"> function textoutput() {        <!-- フォームを変数に// --> var formObj = document.form01;        <!-- selectを取得// --> var select01 = formObj. select01;        <!-- textを結合用の変数として準備// --> var text = '【select01】' + '\n'; text += select01 + '\n';        <!-- output.valueにtextを反映(最後に改行コード)// --> formObj.output.value = text + '\n'; } </script> </head> <body> <form name="form01"> <!--セレクトボタン// --> <strong>・OS確認</strong><br /> <select name="select01"> <option value=""> <option value="Windows7">Windows7 <option value="WindowsVista">WindowsVista <option value="WindowsXP">WindowsXP <option value="WindowsMe">WindowsMe <option value="Windows2000">Windows2000 </select> <br> <!--ログ出力// --> ログ出力<br> <input type="button" value="ログ出力" onClick="textoutput();"><br> <textarea name="output" cols="60" rows="10"></textarea><br> </form> </body> </html>

  • javascriptで取得した値を、FORMで送信する

    いつもお世話になっております。 jspからwindow.openを使い、別ウインドウを表示しました。 別ウインドウでの質問です。 javascriptで前のページ(jsp)の情報を受け取り、それを次のページ(jsp)へFORM(POST)で送りたいのですが、うまくいきません。 ご教授下さい。 <HTML> <HEAD> <script type="text/javascript"> <!-- function sent() { var num = window.opener.document.aaa.number01.value; ここで前ウィンドウの情報を取得しています return num; } function sub() { document.bbb.submit(); } // --> </script> </HEAD> <BODY onload="sub()"> <form name="bbb" METHOD="POST" action="http://okwave.jp"> <input type="hidden" name="timeid" value=""> <input type="hidden" name="number00" value="1"> <input type="hidden" name="number01" value="sent()"> <!--<input type="hidden" name="number01" value="204038054776">--> 当たり前ですが、コメントにしている部分にすると次のページでうまくいきます。 </form> </BODY> </HTML>

  • onBlurのイベントを使ってデータベースを参照し値を代入する方法

    伝票入力する際、ACCESS等で作ると、例えば「得意先コード」を入力すると 「得意先名」が表示される。という画面がありますよね。 そこで先輩方にお伺いしたいのですが、 ASPを使って同様のことをやる場合、どんな手法があるのでしょうか? 私なりに考えた方法が2つほどあるのですが、これが正しいのでしょうか? <案1> ・子ウインドウを表示し、そこでデータベースを参照し、親ウインドウに値を代入。 ---親ウインドウ側--- <INPUT type="text" name="text1" onBlur="GetJTname()"> <INPUT type="text" name="text2"> <script language="JAVAScript"> function GetJTname(){  Newwin=window.open("test1_1.asp?a=" + document.form1.text1.value,"sample","width=240,height=180"); } </script> ---子ウインドウ側--- <form name="form2"> <INPUT type="text" id=text1 name=text1 value="<%=rs.Fields("name_inf").Value%>"> </form> <script language="JAVAScript"> function action(){  window.opener.document.form1.text2.value=document.form2.text1.value;  window.close(); } </script> <案2> ・自分自身にデータを投げる <INPUT type="text" name="text1" onBlur="GetJTname()"> <INPUT type="text" id=text2 name=text2 QS=Request.QueryString("B") value="<%if QS <>"" then %><%=Tname(QS)%><%end if%>"> <%function Tname() <script language="JAVAScript"> function GetJTname(){  location.href ='test1.asp?B=' + document.form1.text1.value; } </script> <%function Tname(code) '... ADOの処理 end function%> (案1)では、当然ながら一瞬ウインドウが開きます。 (案2)では、せっかく入力したTEXT1の内容が消えてしまいます。

  • 複数Formから値を取得するやりかた

    AというASPには複数のformがあります。 DBの取得結果を表示しており、countには取得件数が入ってます。 また、件数分同じformがあり、判別はnameにて行っています。 検索件数<%=count %>件 <input type="button" value="一括修正" action="Update('<%=count %>')"> <% Do Until rs.EOF %> <form method="POST" target="main" name="updatename<%=ii%>"> <input type="hidden" name="no" value="<%= rs.Fields.Item("NO").Value %>" </form> <form method="POST" target="main" name="updatename<%=ii%>">… <% ii= ii+1 rs.MoveNext Loop%> 受け取り側のBというASPでは <form method="POST" name="update"> <%For i = 1 To count%> <input type="hidden" name="no<%=i%>" value="<%=Server.HTMLEncode(Request.Form("No" & i)) %>"> <%Next%> </form> のようにループにて送信側のデータを取得しています。 このAとBの間をjavascriptにて行いたいのです。 Javascript(データ受け渡し) function Update(count) { var No = new Array(); for (Cnt=1; Cnt<count ; Cnt++){ // 件数分ループ No[Cnt] = document.all.updatename(Cnt).no.value; document.update.no(Cnt).value=No[Cnt]; } document.update.submit(); } やりたい事は、Aというファイルにある複数のformから値を取得し、Bというファイルにある項目に設定する、という事なのですが、上手くいきません。 ・複数のformからデータを取得する方法 document.allを使用すると上手くいく、とネットで検索してわかったのですが、いまいち使用方法がわからず、こまっています…。 どうか宜しくお願いします。(ちなみに1つのFormで、というのは仕様上不可能です)

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • option属性の値取得について

    こんばんは。 オプションタグの値取得の方法について質問があります。 opitonタグのvalue属性の値を取得する際、今までは方法Aのコードを用いていましたが、 最近調べものをしていますと、方法Bのコードで取得するのが正しいと知りました。 方法Aでの値の取得についてはGoogle等で検索しましたが、見当たりませんでしたので、 私の思い込みで記述していたのではないかと思われます。 しかしながら、方法Aであっても方法Bであっても取得する値に差異は見られませんでした。 なぜ方法Aでも動作するのでしょうか? 以上、よろしくお願いいたします。 OS  :WinXP SP2 ブラウザ:IE6.0 //------------------------------------------------------------------------ // index.htm //------------------------------------------------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <head>   <meta http-equiv="Content-Script-Type" content="text/javascript" />   <script language="javascript" src="./main.js"></script>  </head>  <body>   <form name="chara">    <select name="job">     <option value="j01">0</option>     <option value="j02">1</option>     <option value="j03">2</option>     <option value="j04">3</option>     <option value="j05">4</option>    </select>    <input type="button" value="func()" onclick="func()" />   </form>  </body> </html> //------------------------------------------------------------------------ // main.js //------------------------------------------------------------------------ function func() {  var Job1 = document.chara.job.value;       // 方法A  var Job2Index = document.chara.job.selectedIndex;  var Job2 = document.chara.job.options[Job2Index].value;   // 方法B  alert( "Job1: " + Job1 );  alert( "Job2: " + Job2 ); }