前提・実現したいこと
初心者なのでつたないところなどあるかもしれませんがよろしくお願いします。
簡単なフォームを作成しているのですが、その中でajaxでフォーム内容を送信しPHPで処理をしたあと、その処理をした値をajax内の通信成功時の部分に返して、その値を使うというものを作成しています。
ネットで調べてみて色々なサイトを見ながら作ってみて取りあえずJSON形式で受け渡しをするのが一番良いかと考え以下のようなコードを書いてみました。
該当のソースコード
javascript
1$('#ajaxForm').submit(function(event){ 2 $.ajax({ 3 type: "POST", 4 url: location.href, 5 data:JSON.stringify({ 6 "target": $("target").val(), 7 "title": $("title").val(), 8 "emailContent": $("emailContent").val(), 9 }), 10 contentType: 'application/json', 11 success: function(response) { 12 // ajax通信成功時の処理 13 14 qrurl = JSON.parse(response); 15 console.log(qrurl); 16 console.log("ok"); 17 }, 18 error: function(xhr, status, error) { 19 // ajax通信成失敗の処理 20 console.log("miss" + xhr.status); 21 } 22 }); 23 return false; 24 });
PHP
1<?php 2$filename = md5(uniqid(rand(), true)).'.html'; 3$to = $_POST['target']; 4$title = $_POST['title']; 5$body = nl2br($_POST['emailContent']); 6$truebody =str_replace("<br />","%0D%0A",$body); 7if(!empty($to)) { 8 $fp = fopen("${dir}${filename}" , "a"); 9 fwrite($fp, "<a href='mailto:${to}?subject=${subject}&body=${truebody}'>メールの送信はこちら<a>"); 10 $url = "https://******:/${filename}"; 11 header('Content-Type: application/json; charset=utf-8'); 12 echo json_encode($url); 13} 14?>
発生している問題・エラーメッセージ
Uncaught SyntaxError: Unexpected token < in JSON at position 0
ajax内での通信および、PHP内の処理はうまくいっているようなのですが、PHPからajaxに値を返すことがどうしてもできず上記のようなエラーメッセージが出てしまいました。
ヒント、参考になるページなどご提示いただけたら幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/03 05:11 編集
2019/05/03 06:36
2019/05/03 08:34