• ベストアンサー

JavascriptからURLを表示させるには

はじめまして デザインを担当していてJavascriptはよくわからないのですが、、、 Javascriptで function shop(tenpoNo, tantouNo) { document.getElementById("tenpo_no").value = tenpoNo; document.getElementById("tenpo_tantou").value = tantouNo; document.getElementById("post_pattern").value = "init"; document.shop_form.action = "http://***.jp/shop.php"; document.shop_form.target = "_self"; document.shop_form.submit(); } というのがあって (tenpoNo, tantouNo) は わかっているので URLとして  http://***.jp/shop.php?(tenpoNo, tantouNo) という風に 入力したら目的のページにアクセス出来るようにしたいのですが どのようにすれば出来ますでしょうか? ちなみに Javascriptで稼働しているページのリンクにマウスを置くと Javascript:shop("01","003")のようになります。 ご多忙のところ恐縮ですが ご教授をお待ちしております。。。

  • ya-ya-
  • お礼率42% (110/256)

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

ご質問の意味がわかりかねますが… >URLとして >​http://***.jp/shop.php?(tenpoNo,tantouNo) という風に >入力したら目的のページにアクセス出来るようにしたいのですが どこに入力するのでしょうか? →ブラウザのアドレスバーに直接入力?   shop.php側でデータを解析して、出力先を編集しなおすとか? (通常は連想配列で取得しているようなので、うまくいくのか不明。多分可能) それよりは書式を変えて(現状に合わせて?)、  ~~shop.php?xxx=tenpoNo&yyy=tantouNo・・・ みたいにして送るほうがそのままでいけるから簡単では?(xxx、yyyは不明) →HTMLフォームのインプットなどに入力?  もとのソースが不明ですが、それと同じ構成のフォームをつくっておいて、  サブミットボタンを押せば、(現状の?)shop.phpが表示してくれるはず。  (tenpoNoとtantouNoを入れればよい)  javascriptで変換して直接jumpしてもいいけれど、フォームのサブミットと  同じなので意味がない。 そもそも、ご提示の function shop(tenpoNo, tantouNo) がほぼそのような機能をもっていると思うのだけれど、それと違う何を求めているのかがよくわからない。 表題の >JavascriptからURLを表示させるには は「URLそのものを表示させたい」という意味に読み取れるが、「URL指定先を表示させたい」という意味のことなのだろうか? それならば、こちら(↓)  http://www.tohoho-web.com/js/location.htm#href ご質問文中の  「http://***.jp/shop.php?(tenpoNo,tantouNo)」をURLとして、その内容を表示させたいというのなら↑でよいはずだが、想像では、それだとエラーが返ってくるか、予想とは違うトップページなどが表示されるのではないだろうか? (アドレスバーに直接入力してみればわかるはず)

ya-ya-
質問者

お礼

ご教授ありがとうございました。 色々試しましたが 別の方法で表示させることとなりました ご協力ありがとうございました。

その他の回答 (1)

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

多分、何か理由があるんでしょうけど、 渡す相手がPHPなのに、JavaScriptを使って、 なぜ こんな複雑な書き方をしているのか分かりません。 PHPに変数を渡しているのですから、PHP側で分岐させれば良いのでは?と思ってしまいます。 >ちなみに Javascriptで稼働しているページのリンクにマウスを置くと >Javascript:shop("01","003")のようになります。 JavaScriptを ざっと読んだ限りでは、 その付近にフォームがあり、JavaScriptで フォームの内容を書き換えた上で、 PHPに送信している。と言う風に見えました。 なので、そのリンクは以下のようなのではダメだったんでしょうか?と思います。 ttp://***.jp/shop.php?tenpo_no=$tenpoNo&tenpo_tantou=$tantouNo&post_pattern=init

ya-ya-
質問者

お礼

ご教授ありがとうございました。 色々試しましたが 別の方法で表示させることとなりました ご協力ありがとうございました。

関連するQ&A

  • javascript confirmでFORM送信

    javascript confirmにて「この点数で良ければ送信する」というものを考えています。 この点数部分は変数になる予定であり、javascript内部で生成されます。 まずは、変数ではなく固定値として、javascriptの中にある数値を<form></form>の中に生成することを考えましたがいきなりつまずきました。 「100という数値を送信」するつもりだったのですが、うまく送信することが出来ません。 どこを修正すればいいかご教示いただきたくお願いいたします。 <html> <head> <title>submit</title> </head> <script language="javascript"> <!-- function frmSubmit() { var errFlag=true; if(errFlag==false) { return; } if(confirm("100点です。送信しますか?")) { document.frm.submit(); document.getElementById("plus").value ="100"; } else { } } //--> </script> <body> <form method="post" action="form.cgi" name="frm" target="_self"> <input type="HIDDEN" id="plus" value="" /><br /> <input type="button" value="send" onclick="frmSubmit();"> </form> </body> </html>

  • PHPでjavascriptを表示する方法

    すみません。javascriptの事はほとんど分からないのですが、 phpを使ってjavascriptを表示したいのですが基本的な部分で分かりません。 例えば <?php echo"<script>document.write(\"PHP!\")</script>;" ?> は簡単にできますが、タグに入っているjavascriptはどうやってphpで表示させるのでしょうか? <form name="aaa" method="post" action="bbb.php"> <select name="ccc" onChange="document.forms['aaa'].submit()" > <option value="111">111</option> <option value="222">222</option> </select> </form> 上記のスクリプトを単純にphpで表示したいのですが、どうやってもphpで囲むとonChangeが動かず 動的にはなりません。 何時間もぐぐったりしてますが解決しません。タグの中のjavascriptは直接phpでは動かせないのでしょうか?

    • ベストアンサー
    • PHP
  • javascript クロームさんをなんとかしたい

    javascriptでchromeだけ挙動が違うので動作を分離しようと考えています。 問題点はsubmit()の後、処理を抜けてしまう点です。 下記'問題の箇所'の行が実行されません(1行前のsubmit()の時点で関数を終了する) 何か対応策はないでしょうか? ※エッジ、IE、Foxは期待通りの動作です -----jsファイルの内容---- function Key_on(keyCode){ if(keyCode == 13){ var userAgent = window.navigator.userAgent.toLowerCase(); if (userAgent.indexOf('chrome') != -1) { document.forms[txt_submit].submit(); document.getElementById('ctxt').value= '';←問題の箇所 }else{ document.txt_submit.submit(); document.getElementById('ctxt').value= ''; } } } function send(){ document.txt_submit.submit(); document.getElementById('ctxt').value= ''; } -----htmlの内容---- <form id="txt_submit" name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" id="ctxt" name="ctxt" size="20" value="" onkeydown="Key_on(event.keyCode)"> <input type="button" value="送信" onclick="return send();"> </form>

  • javascriptでpostした値が取得できない

    javascriptのsubmit()を使ってpostした値が取得できません プログラム自体が素人に近い自分なのですが助けていただきたいです。。。 ページ内にある複数のボタンを5つ押した場合に違うページに押下したid配列と共に送りたいと考えました。 onoffの部分で5回ボタンが押されたら特定のページに遷移するところまではできたのですが、 遷移先でphpのvar_dump($_POST)で確認したところ array(0) { } が返ってきました。送信する前にデータが入ってるかalertで確認したのですが、そのときはちゃんと入っておりました。 取得方法が悪いのかはたまた送信方法が悪いのか混乱してしまい、今回質問させていただきました。 わかる方いらっしゃいましたらご教授よろしくお願いいたします。 member = new Array(); function cardonoff(id){ // ボタン押されてなければ if(document.getElementById("member"+id).value != "登録完了"){ document.getElementById("member"+id).value = "登録完了"; document.getElementById("member"+id).style.background = "#FF0000"; document.getElementById("member"+id).style.color = "#FFFFFF"; // ID追加 member.push(id); alert(member.length + "人のIDは" + member); if(member.length == 5){ alert("5人選択されました"); // 文字列に置き換え var memberlist = member.join(','); document.getElementById('memberid').value = memberlist; document.getElementById('memberselect').submit(); } } } form部分 <form id="memberselect" action="./" method="POST"> <INPUT type="hidden" id="memberid" value="" /> <?php foreach($result as $data){ ?> <section> <div class="category"> <h2> <input type="button" id="member<?php echo $data["id"]; ?>" value="メンバー登録" style="width:150px; height:30px" onClick="cardonoff(<?php echo $data["id"]; ?>)"> </h2> </div> </section> <?php } ?> </form>

  • javascript submit()の後の動作

    scriptはjsファイルで分離しています。 送信ボタンをクリックした場合の動作は期待通りの動作をしています エンターキーを押したときの動作が、フォームの送信は正常に実行されるのですが、 document.getElementById('ctxt').value= '';が実行されません。 その後、試しにアラートも入れてみましたけど、動作していないようです document.forms[txt_submit].submit();の後の部分が実行されるようにするにはどうしたらいいのでしょうか? function Key_on(){ if(window.event.keyCode == 13){ document.forms[txt_submit].submit(); document.getElementById('ctxt').value= ''; alert('ん?'); } } function send(){ document.txt_submit.submit(); document.getElementById('ctxt').value= ''; } ----------------- <form id="txt_submit" name="txt_submit" action="log.cgi" method="post" target="log" autocomplete="off"> <input type="text" id="ctxt" name="ctxt" size="20" value="" onkeydown="Key_on()"> <input type="button" value="送信" onclick="return send();"> </form>

  • JavaScript Eventのタイミング

    Eventの挙動を学ぶために、簡単なスクリプトを作成しました。 テキストボックスに文字列を入れて、Submitボタンを押すと、 テキストボックスの下に(innerHTMLで)入力文字が表示され、 ボタン自体も入力文字になるというものです。 しかし、テキストに文字を入力し、Submitを押してもボタン・innerHTMLともに文字は変化しません。このままリロードをすると変化します。 挙動からして、マウスクリック自体は反応していないが、リロードによりイベントハンドラが動作しているように見受けられます。 イベントハンドラはonclickに代入しているためなぜこのようになるのか わかりません。 できるだけ、JavascriptとHTMLを分離したく外だしのファイルで 実現したいと思っています。 考え方、(比較的平易な)参考資料などありましたら教えていただけないでしょうか? HTMLで<body onload="init()">として、JavaScriptでは以下のように記述しています。 function init(){ document.getElementById("button").click = change(); } function change(){ keyword = document.getElementById("keyword").value; document.getElementById("input").innerHTML = keyword; document.getElementById("button").value = keyword; }

  • Javascriptを短くしたい

    初歩的なことですみません。 Javascriptで表示/非表示を切り替えるものを作ろうと思うのですが、 以下のサンプル文のような形では、項目数が増えるとその分だけ どんどんJavascriptも長くなっていってしまいます。 Javascript文を簡潔にするには、どのように記述すればよいのでしょうか。 よろしくお願いします。 <script type="text/javascript"> <!-- function Hyo1(num) { if (num == 0) { document.getElementById("cont1").style.display="block"; } else { document.getElementById("cont1").style.display="none"; } } function Hyo2(num) { if (num == 0) { document.getElementById("cont2").style.display="block"; } else { document.getElementById("cont2").style.display="none"; } } // --> </script> <div id="cont1">ああああああ</div> <form> <input type="button" value="表示" onclick="Hyo1(0)"> <input type="button" value="非表示" onclick="Hyo1(1)"> </form> <form> <div id="cont2">いいいいいい</div> <input type="button" value="表示" onclick="Hyo2(0)"> <input type="button" value="非表示" onclick="Hyo2(1)"> </form>

  • javascriptでログインページの作成

    JSPを作成しているのですが、javascirpt構文の方が 多いため、こちらで質問をさせて頂きます。 javascript, html で ログインページを作成しています。 <%@ page contentType="text/html;charset=Shift_JIS" %> <script type="text/javascript" language="javascript"><!--     function Submit(name,pass,f){  if(name == null){ document.getElementBy(f).action="http://www.yahoo.co.jp"; document.getElementById(f).submit(); }else{ document.getElementById(f).action="http://www.google.co.jp"; document.getElementById(f).submit(); } } //--></script> <form action="login.jsp" method="post" NAME="f1"> <table border="1" width="30%"> <tr> <td>ユーザーID:</td> <td><input type="text" name="admin" size="25" value=""></td> </tr> <tr> <td>パスワード:</td> <td><input type="password" password="password" value=""></td> </tr> </table> <%--- これが悪いのかも!? --- %> <% String name = request.getParameter("name"); String password= request.getParameter("password"); %> <input type="submit" value="ログイン" onClick="Submit('name','password','f1');"> </form> </body> </html> ログインボタンをクリックして、name,password,f1(formの名前)を function のSubmitに値を渡したいのですが、nullが渡されてしまいます。 テキストボックスで入力された値を渡したいのですが、 javascript,htmlの知識が乏しいため、どこがおかしいのかわかりません。 もしわかる方が居ましたら、よろしくお願いたします。

  • javascriptで困っています。教えてください

    JavaScriptで配列をPOST送信しようとしています。 <form>や<input>を作っておいてではなく、javascriptで生成する関数からしたいと思っています。以下のコードでうまくいきません。 教えていただければありがたいです。よろしくお願いします。 <!DOCTYPE html> <html> <head> <script type="text/javascript"> var ar = new Array(5); ar[0] = 111; ar[1] = 222; ar[2] = 333; ar[3] = 444; ar[4] = 555; function sampleForm(value){ var form = document.createElement('form'); document.body.appendChild( form ); var input = document.createElement('input'); input.setAttribute('type','hidden'); input.setAttribute('name','hidden_input'); input.setAttribute('value', value); form.appendChild(input); form.setAttribute('action','send.php'); form.setAttribute('method','post'); form.submit(); } </script> </head> <body> <a href=“javascript:sampleForm(ar)”>クリックしたら“samplepost”をPOST送信</a> </body> </html> send.php-------------------------------- <?php $num = isset($_POST['hidden_input']) ? $_POST['hidden_input'] : null; print "num: " . $num; ?>

  • javascriptの変数値をjspへ渡す方法?

    下記の方法で、テキスト項目から、javascriptで値を取得できました。 この値を、jspの変数Stringへ格納するには、 どうすればよいでしょうか? <%= "<script type=\"text/javascript\" charset=\"UTF-8\">" %> <%= "target = document.getElementById(\"outaddress1\");" %> <%= "target.innerText = document.forms.zip_form.address1.value;" %> <%= "target = document.getElementById(\"outaddress2\");" %> <%= "target.innerText = document.forms.zip_form.address2.value;" %> <%= "target = document.getElementById(\"outaddress3\");" %> <%= "target.innerText = document.forms.zip_form.address3.value;" %> <%= "</script>" %>

専門家に質問してみよう