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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1361閲覧

外部ファイルにあるjavascriptの関数が呼ばれない

nguyenseiji

総合スコア156

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/07/12 03:59

編集2020/07/12 05:33

現在セレクト機能を作成しています

第一カテゴリ(発送方法)と第二カテゴリ(送料)

があるのですが

第一カテゴリによって第二カテゴリの選択項目が動的に変動するように作成しました

ですがなぜか写真のようにsetPostage関数が呼ばれていないのか

select機能が表示されないです

コードの方も何度も確認しましたがわからずじまいです

イメージ説明

html

1 <script src="../method/method.js"></script> 2 <script src="../method/postage.js"></script> 3 4 5 <div>発送方法と送料</div> 6 7 <select name="method" id="method" onChange="callPostage()"></select> 8 9 <select name="postage" id="postage"></select> 10 11 12 13 <!--ここでselect系の別ファイルを呼び出してnameを参照して表示--> 14 <script > 15 callMethod(); 16 17 </script> 18

js

1 2function callMethod(){ 3 var chooseMethod = document.forms.formName.method; 4 chooseMethod.options[0] = new Option("==発送方法=="); 5 chooseMethod.options[1] = new Option("クリックポスト"); 6 chooseMethod.options[2] = new Option("普通郵便"); 7 chooseMethod.options[3] = new Option("ミニレター"); 8 9 10 setPostage(chooseMethod); 11} 12 13function callPostage(chooseMethod){ 14 var chooseMethod = document.forms.formName.method; 15 setPostage(chooseMethod); 16} 17 18
function setPostage(chooseMethod){ var choosePostage = document.forms.formName.postage; choosePostage.options.length = 0; if(chooseMethod.options[chooseMethod.selectedIndex].value == "") { choosePostage.options[0] = new option("==送料=="); } else if (chooseMethod.options[chooseMethod.selectedIndex].value == "1") { choosePostage.options[0] = new option("198円"); } else if (chooseMethod.options[chooseMethod.selectedIndex].value == "2") { choosePostage.options[0] = new option("84円"); choosePostage.options[1] = new option("94円"); choosePostage.options[2] = new option("120円"); choosePostage.options[3] = new option("140円"); choosePostage.options[4] = new option("210円"); } else if (chooseMethod.options[chooseMethod.selectedIndex].value == "3") { choosePostage.options[0] = new option("63円"); } }

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

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

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

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

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

m.ts10806

2020/07/12 04:02

関数でなければ呼ばれるんでしょうか。 console.logなりalertなりで確認してみてください。 あとはエラーが出てないか確認を
m.ts10806

2020/07/12 04:03

あと本件PHP関係無さそうですね
nguyenseiji

2020/07/12 04:17 編集

ご連絡ありがとうございます 関数をconsole.logで調べる際は 一度変数に入れないといけないのでしょうか 調べてみると変数の中身しか見れないという事で.. <script> var test = callPostage(); document.write(console.log(test)); </script> 記述コードをこのようにしたらundefinedになったので うまく関数が呼び出されていないという事でしょうか
nguyenseiji

2020/07/12 04:25

<script> if( callFirstCategoli() == undefined) { alert('関数の呼び出し失敗'); } else { alert('成功'); } </script>
nguyenseiji

2020/07/12 04:27

このようにコードを記載したら 関数の呼び出し失敗になったのですが この関数は確実に呼び出しは成功しています 関数が呼び出されているか確認するときは undefinedでif文を作成しても問題ないのでしょうか
coco_bauer

2020/07/12 05:25

nguyenseijiさんが「この関数は確実に呼び出しは成功しています」と判断した根拠は何ですか? yambejpさんが指摘しているように、質問に書かれているプログラムには、callFirstCategoliという関数の宣言が無いのです。 ひょっとして、質問のタイトルにある"外部ファイルにあるjavascript"があるのですか? 質問に書かれていないプログラムは、無いも同然なんですけど。(誰も、どんなコードなのかを知る方法が無いですから)
nguyenseiji

2020/07/12 05:32

コメントありがとうございます。 大変失礼いたしました 全く関係ない関数になります 修正しておきます 申し訳ございません 関数が確実に呼び出されている根拠は callFirstCatyegoli関数は optionの出力文字を外部ファイルできか記載していないのですが 問題なくカテゴリに大分類と記載されていますので成功と判断しております
AkitoshiManabe

2020/07/12 22:36

修正依頼:HTMLの追記(意図した動作にならなくなった時点のHTML) 依頼理由:画像からはHTML構造の推測しかできないため 開発者コンソール(PCブラウザではF12で開く)の「Elementsタブ」でツリーを表示し、フォーム部分のHTMLをコピペして示してください。詳細が示されることで詳細な回答も得られると思います。
guest

回答2

0

私が気づいた点は new Option の typo です。

8箇所で Pascal case になっていません。

投稿2020/07/12 04:48

AkitoshiManabe

総合スコア5434

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

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

nguyenseiji

2020/07/12 05:34

コメントありがとうございます。 optionをOptionに修正したのですが やはり動かないです...
guest

0

ベストアンサー

とりあえずcallFirstCategoli()がどこにも宣言されずに参照されているのが
問題です

投稿2020/07/12 04:35

yambejp

総合スコア116724

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

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

nguyenseiji

2020/07/12 05:33

コメントありがとうございます。 大変失礼いたしました 全く関係ない関数になります 修正しておきます 申し訳ございません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問