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

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

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

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

JavaScript

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

549閲覧

API(PHP)から取得したhtmlのボタン要素にJavaScriptのEventListenerを動作させたい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

JavaScript

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/10/08 12:10

##質問
PHPでhtmlを返すAPIを作成し、確認ボタンをクリックすることで、
APIからのレスポンス(html)である確認画面を表示することはできました。

レスポンスされたhtmlのボタン要素にapi.phpに記述している
javascriptを動作させるにはどうすれば良いのでしょうか?

戻るボタンで元の画面に戻るようにしたいです。
そもそも、アルゴリズムから再検討が必要かもしれません。
##ソースコード

html

1<body> 2 <h3>Document</h3> 3 <div id="work"> 4 <p>入力画面</p> 5 <form id="form" name="myForm"> 6 <p class="text">Q1.text: <input type="text" name="text1" value="hoge" /></p> 7 <p class="radio">Q2.radio: 8 <input type="radio" name="radio1" value="A" checked />A 9 <input type="radio" name="radio1" value="B" />B</p> 10 <p class="radio">Q3.checkbox: 11 <input type="checkbox" name="checkbox1[]" value="A" />A 12 <input type="checkbox" name="checkbox1[]" value="B" checked />B 13 <input type="checkbox" name="checkbox1[]" value="C" checked />C</p> 14 <input id="button" type="button" value="確認" /> 15 </form> 16 </div> 17 18 <script> 19 20 // ワークエリアの取得 21 const workArea = document.getElementById("work"); 22 23 // 確認ボタンが押されたら 24 document.getElementById("button").addEventListener("click", function () { 25 26 const formElement = document.getElementById('form'); 27 const formData = new FormData(formElement); 28 formData.append("name", "value"); 29 30 // api.phpへ接続 31 fetch('./api.php', { 32 method: "post", 33 body: formData 34 }).then((res) => { 35 if (res.status !== 200) { 36 throw new Error("error"); 37 } 38 return res.text(); 39 }).then((text) => { 40 console.log(text); 41 workArea.innerHTML = text; 42 }).catch((error) => { 43 console.log(error.message); 44 }).finally(() => { 45 console.log("finally"); 46 }); 47 }); 48 49 </script> 50</body>

api.php

php

1<?php 2echo "<p>確認画面</p>"; 3 4foreach($_POST as $key => $value) { 5 echo $key. " : <b>" .$value. "</b><br>"; 6} 7 8echo '<input id="back" type="button" value="戻る">'; 9echo '<input id="send" type="button" value="登録">'; 10 11$text = <<<"EOT" 12<script> 13document.getElementById("back").addEventListener("click", function () { 14 console.log("back"); 15}); 16</script> 17EOT; 18echo $text; 19?>

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

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

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

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

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

guest

回答1

0

ベストアンサー

workArea.innerHTML でHTML上に設置してからaddEventすれば良いです。

投稿2020/10/08 12:20

m.ts10806

総合スコア80850

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

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

退会済みユーザー

退会済みユーザー

2020/10/08 23:21

ご回答ありがとうございました。無事動作確認できました。
m.ts10806

2020/10/08 23:26

解決されたようで何よりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問