質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

346閲覧

同一ページ内で<script></script>が複数存在する時の値の受け渡し方を教えていただけないでしょうか

milkif

総合スコア16

Stripe

Stripeとは、米国のオンライン決済システム提供企業、及び同社が提供する決裁システムを指します。Webサイトやモバイルアプリにコードを組み込むことでクレジットカードなどの決済サービスが簡潔に追加できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2017/12/29 13:49

最初の<script>で値amountを取得出来ていることは確認しています。その後にstripe(決済システム)の埋め込みコードなんですが、script< タグ内に
コードが書かれているので、一つの<script></script>でくくれませんでした。
data-amount= に上記で取得した amount の値を渡す方法がわからず困っています。

html

12<select id="amount" name="amount" onchange="myfunc()"> 3〜省略〜 4</select> 5 6 7<script> 8 var amount; 9 function myfunc() { 10 amount = document.getElementById("amount").value; 11 console.log(amount); //OK 12 } 13</script> 14<script 15 src="https://checkout.stripe.com/checkout.js" class="stripe-button" 16 data-key="pk_test_XXXXXXXXXXXXXXXX" 17 data-amount= amount 18 〜省略〜 19 data-currency="jpy"> 20</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karamarimo

2017/12/29 14:44

script tag はページが読み込まれるときに実行されるので、後から data-amount を変えても意味が無いのでは?
milkif

2017/12/29 16:09 編集

期待している挙動は,セレクトボックスで選択された値が onchange="myfunc()" にてamountが都度取得し直し、data-amountを書き換えてその値を決済システムに送信できるようにしたいのですが、script tag で再読込させるのは良くないのでしょうか?
karamarimo

2017/12/29 16:22 編集

「script tag で再読込させる」とはどういうことでしょうか?script tagに指定された js はそれがページに読み込まれた時点で実行されて終わりではないですか?試しにボタンを押した時に data-amount を変えるデモを作ってみましたが、決済ボタンを押したときに表示される料金には反映されませんでした。demo: https://jsfiddle.net/ja592c3x/
milkif

2017/12/29 18:09

先ほど投稿したですが表示されないので再送します。まずはご丁寧に対応いただき有難うございました。再読込とは onchangeイベントでその都度、変数amountを更新していることを再読込と書きました。イベントなどでdata-amountは更新できないんですね、なんとなく分かってきました。有難うございます。
karamarimo

2017/12/29 19:46

正確には、data-amount という attribute を更新することは自由にできますが、たまたま checkout.js はロード時にしかその値をチェックしないということです。
milkif

2017/12/30 03:19

やっと理解できました。ほんとうに丁寧なご対応有難うございました!
guest

回答2

0

ベストアンサー

この custom の方法でやれば js 上で動的に料金などを指定できると思います。
Custom Integration - Stripe Checkout

投稿2017/12/29 19:54

karamarimo

総合スコア2551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

milkif

2017/12/30 03:38 編集

正式な指定方法があったんですね。さっそく試してみました。 <script>〜</script>内にfunction myfunc()を差し込んで amountにその変数を指定して期待通りに動きました。これで大掃除に取り掛かれます。本当にありがとうございました!
guest

0

HTMLのタグで変数を使うことはできません。どうしてもやりたいなら、DOMの該当部分を直接生成するしかないでしょう。

投稿2017/12/29 15:03

hichon

総合スコア5737

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

milkif

2017/12/29 15:59

アンサーありがとうございます。javascriptのやり取りだけで実現出来ると思いHTMLで質問させていただきましたが、ララベルのblade.phpで実装します。 data-amount=<?php echo json_encode($amount) ?>で値の取得は確認できたのですが、 $amount(php) = amount(js) のようにjsの値をphpの変数には置き換えられなかったのでjs同士の受け渡しなら可能かと思ったのですがscriptタグを越えての値の受け渡しはできないんですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問