下記form内のsubmitボタンをクリックしたとき以下の条件を満たしたいです。
(1) actionで外部リンクを新規タブで開く
(2) 同時にregist.phpへパラメータ(kanryo=0)を持たせて遷移
========================================
【head内】
<script>
jQuery(document).on("click", '#viewing', function() {
$.get("regist.php", {
kanryo: "0"
}, function(data) {});
});
</script>
【body】
<form action="外部リンクURL" method="POST" target="_blank">
<input type="hidden" name="SAMLResponse" value="<?=$samlresponse ?>" />
<input type="submit" value="動画を視聴する" id="viewing">
</form>
========================================
■問題点
(1) でPOST送信できており遷移するが、(2) の遷移が何の変化もなくできていない。
JavaScript での飛ばし方が問題があるのかと思ったのですが、
他者が以前書いた記述であるのと、JavaScriptについてほぼ無知なので原因がわかりません。
このJavascript の記述でregist.phpへ遷移はできるはずなのでしょうか?
問題ないのであれば、それ以外の部分でおかしいところを検証します。
別内容になりますが、飛ばしたいパラメータを2にしたい場合は
このJavascript の記述はどしたら良いでしょうか?
前提知識が少ないため、調べても判断ができず、申し訳ありません。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
No1です
>"regist.phpundefined"と、404エラーに
404はFile Not Foundです。
要は、リクエスト先が見つからないということになります。
setTimoutの処理では、一旦、イベント関数から解放されているので、this値は(多分)windowになっているものと想像します。
この結果、this.idはundefinedとなっていて、遷移先のlocationとして「regist.phpundefined」を指定してることになっているものと思います。
this値ではなく、一旦、変数に代入しておけば、参照可能になります。
例えば、
$(".viewing").click(function() {
const url = "regist.php" + this.id;
setTimeout(function(){ location.href = url; }, 2*1000);
});
とするなど。
※ 時間差はブラウザにsubmit処理を行わせるためだけなので、2秒もなくても良いのではと思います。
一旦、変数に代入する方法でうまく値を飛ばすことができました!
おそらく初歩的なことだったとは思いますが、
丁寧に教えてくださり、本当にありがとうございました!!
時間も500にしてみました。
No.1
- 回答日時:
こんばんは
>(2) の遷移が何の変化もなくできていない。
$.get()はajaxのメソッドです。ですのでページ遷移は発生しません。
https://api.jquery.com/jQuery.get/
regist.phpが何を返しているのか不明ですけれど、戻り値のdataを利用してHTMLを書き換えるか、あるいは、単に遷移をするだけなら、location.hrefを上書きする方法の方が簡単です。
https://developer.mozilla.org/ja/docs/Web/API/Lo …
ただし、ブラウザのsubmit動作前に遷移してしまうと、submitが行われなくなる可能性がありますので、setTimeout等で時間差を作る必要がありそうに思います。
(ajaxの場合は、遷移が起きないのでそのような必要はありません)
>飛ばしたいパラメータを2にしたい場合は~
どのパラメータのことかわかりませんが・・・
「SAMLResponse」であるなら、出力時にその値をセットしておいてください。
「kanryo」の場合なら、スクリプトを書き直すか、現状の固定値を変数にしておいて可変にするなど。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- PHP php ログイン 1 2022/11/01 00:24
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
遷移元を判定したい!
-
三菱GOTの画面切り替えについて
-
ServletからServletへの値渡し
-
ASP.NET 画面遷移前の状態を保...
-
JAVAのセッション変数の上書き...
-
C# ログイン画面からメイン画面...
-
Python言語のAnacondaの話です ...
-
ServletからHTMLページへの遷移...
-
VBAでAというExcelのbookをBと...
-
Javaプログラミングの質問にな...
-
【JavaScriptわからない】1クリ...
-
アドレスバーに引数を表示させ...
-
javaのstrutsを使った画面遷移...
-
Wi-Fiのパスワードが指定なしと...
-
PC画面上に変化があった時、音...
-
JSPかサーブレットでオセロゲーム
-
画面を隠す・消す方法を教えて...
-
検索画面→結果画面→検索画面と...
-
ブラウザアドレスバーからのURL...
-
IE7での閉じるボタン等の画面ク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
ASP.NET 画面遷移前の状態を保...
-
Strutsの情報保持の仕方について
-
登録後、呼び出し元ページに戻...
-
ServletからHTMLページへの遷移...
-
JAVAのセッション変数の上書き...
-
system("cls")について
-
画像の縦横比固定の計算方法。
-
ブラウザアドレスバーからのURL...
-
画面を隠す・消す方法を教えて...
-
strutsで、JSP→アクションクラ...
-
セッション切れでのリクエスト...
-
MFCプログラミング
-
javaのstrutsを使った画面遷移...
-
FormのsubmitでFormの内容がnull
おすすめ情報
loactionで遷移挙動はできました!が2つのパラメータが変なのかURL末尾が"regist.phpundefined"と、404エラーに…。
<?php $PARAMETER = "?kanryo=".$KANRYO."&id=".$ID; ?>
<form action="リンク" method="POST" target="_blank">
<input type="submit" value="動画を視聴する" class="viewing" id="<?=$PARAMETER;?>">
<script>
$(".viewing").click(function() {
setTimeout(function(){
location.href = "regist.php" + this.id;
}, 2*1000);
});
</script>
</form>