現在、クイズサイトを作っております。
言語はHTML/CSS、Javascriptで作成をしており、クイズの正解の数などはJavascriptで計算をしています。
(index.html)
HTML
1<div class="box"> 2 <div id="q_1" class="fit"> 3 <p>1問目: 〇〇を答えよ</p> 4 <ul> 5 <li> 6 <input type="radio" name="q_1" class="typeB" id="1"> 7 <label for="1" class="label sample_label">不正解</label> 8 </li> 9 <li> 10 <input type="radio" name="q_1" class="typeB" id="2"> 11 <label for="2" class="label sample_label">不正解</label> 12 </li> 13 <li> 14 <input type="radio" name="q_1" class="typeA" id="3"> 15 <label for="3" class="label sample_label">正解</label> 16 </li> 17 <li> 18 <input type="radio" name="q_1" class="typeB" id="4"> 19 <label for="4" class="label sample_label">不正解</label> 20 </li> 21 </ul> 22 </div> 23 </div> 24<!--以下クイズが続きます-->
【Javascript】
javascript
1 //チェックされているinputの数を取得 2 var typeANum = $(".typeA:checked").length, 3 4 var score = typeANum*3; //正解数×3点
今回、Twitterでクイズの得点をシェアできるようにしたいと思いました。
そのためにはPHPで得点を取得しないと、Twitterシェア画面で表示させることが出来ないことが分かりました。
そこで、index.htmlをindex.phpに変更し、Javascript変数のscoreをphpに受け渡すことを試みました。
ajaxを使う方法を見つけやってみました。
javascript
1//scoreをphpに引き渡す 2 $.ajax({ 3 type:"POST", 4 url:"index.php", 5 data:{'データ':score}, 6 dataType:"json", 7 scriptCharset:'utf-8' 8 }) 9 .then( 10 function(param){ 11 console.log(param); 12 }, 13 function(XMLHttpRequest,textStatus,errorThrown){ //エラー時の実行 14 console.log(XMLHttpRequest); 15 });
php
1 <?php 2 header("Content-type: application/json; charset=UTF-8"); 3 $data = filter_input(INPUT_POST,'データ'); //送ったデータを受け取る 4 $score = $data; 5 echo json_encode($param);//データを返す 6 ?>
結果、index.phpにて上記データを受け取るとこんなエラーが発生しました。
Warning: Cannot modify header information - headers already sent by…
【試したこと】
もともとhtmlだったものをphpファイルに変更したため、headerが重複しているという記事を見つけました。
htmlファイルの先頭に、phpの「header("Content-type: application/json; charset=UTF-8");」を持っていきましたが、ブラウザ上にプログラムがそのまま表示されてしまうエラーになりました。
そのほか、記述の位置をいろいろと変更したりしてみましたが同じくブラウザ上にプログラムがそのまま表示されるエラーが発生します。
【教えていただきたいこと】
javascriptの変数をhtmlに記載しているTwitterシェアで表示させたい。というのが今回のやりたいことです。
私が調べた限りでは、上記の通りPHPに変数を受け渡すことが見つかり試しています。
エラー解消のヒント、そのほかのやり方のヒントをお教えいただけるとありがたいです。
phpに関して初歩的な知識しかありません…。
何卒よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー