htmlファイルのformに文章を入力後、送信ボタンを押下してからポップアップで「ご意見ありがとうございました」と表示してから、insert_opinion();を実行し、opinion.phpに渡された入力内容をDBに格納するようなコードを書いています。
main.php
html
1・ 2・ 3・ 4・ 5 6<script> 7 function insert_opinion() { 8 got_opinion = document.form.opinion.value; 9 console.log(got_opinion); 10 11 $.ajax({ 12 url: "opinion.php", 13 type: "POST", 14 //processData: false,//Uncaught TypeError: Illegal invocation が出ないようにするために 15 dataType: "text", 16 data: { 17 "opinion" : got_opinion 18 }, 19 }).done(function(data){ 20 console.log("opinion_DB通信完了_PUT"); 21 console.log(data); 22 }).fail(function(data){ 23 console.log("opinion_DB通信失敗_PUT"); 24 console.log(data); 25 }); 26 27 }; 28 </script> 29・ 30・ 31・ 32・ 33 34<form method="POST" action="opinion.php"> 35 36 <textarea name="opinion" cols="30" rows="5"></textarea> 37 <p><input type="submit" value="送信する" onclick="alert('ご意見ありがとうございました');insert_opinion();"></p> 38 </form> 39・ 40・ 41・ 42・ 43
chromeの開発ツールのコンソールには
main.php?opinion=にし:25 Uncaught TypeError: Cannot read property 'opinion' of undefined
at insert_opinion (main.php?opinion=:25)
at HTMLInputElement.onclick (main.php?opinion=:124)
と表示されます。
(main.php?opinion=***:25)は、
html
1got_opinion = document.form.opinion.value;
で
(main.php?opinion=***:124)は、
html
1<p><input type="submit" value="送信する" onclick="alert('ご意見ありがとうございました');insert_opinion();"></p>
の箇所です。
無事にエラーが出ないようにする方法がお分かりになりましたら、ご教示の程よろしくお願いいたします。
opinion.phpを追加しました
php
1<?php 2ini_set('display_errors',1); 3session_start(); 4 5require 'database.php'; 6 7if ($_SERVER['REQUEST_METHOD'] === 'POST') { 8 $login_user_info = $_SESSION['login_user']; 9 $login_user = $login_user_info['user_name']; 10 $opinion = $_POST['opinion']; 11 12 try{ 13 $pdo = connect(); 14 $stmt2 = $pdo->prepare("UPDATE User3 SET opinion = '$opinion' WHERE user_name = '$login_user'"); 15 $stmt2->execute(); 16 }catch(PDOException $e){ 17 echo $e->getMessage()." - ".$e->getLine().PHP_EOL; 18 } 19} 20sleep(3); 21header( "Location: https://*******/main.php" ) ; 22exit ; 23?>
回答1件
あなたの回答
tips
プレビュー