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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

解決済

jQueryで取得した値をPHPに変数として渡したい

uzr1709
uzr1709

総合スコア34

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

3回答

0リアクション

0クリップ

453閲覧

投稿2022/07/31 10:04

編集2022/08/01 06:31

実現したいこと

チェックボックスで選択した値を変数としてPHPに渡したい。

発生している問題・エラーメッセージ

チェックボックスの値を変更すると、PHPに変数として値が渡される事が理想ですが、以下のエラーメッセージが表示され、PHPに値を渡す事が出来ません。
dataTypeを"text"にするとconsole.logに値が入ってきます。
またdataTypeを"text"にするとエラーメッセージは表示されませんが、PHPの方に値が入ってきません。
エラーメッセージも構文エラーを指摘されていると思うのですが、dataTypeを"text"と"json"に変更したのみでどこが間違っているのか検討がつきません。

SyntaxError: Unexpected token < in JSON at position 0

該当のソースコード

PHP

<input type="checkbox" name="val[]" value="val1" id="ckpoint1"><label for="ckpoint1">選択肢1</label> <input type="checkbox" name="val[]" value="val2" id="ckpoint2"><label for="ckpoint2">選択肢2</label> <input type="checkbox" name="val[]" value="val3" id="ckpoint3"><label for="ckpoint3">選択肢3</label> <?php if (isset($_POST['selectval'])) { echo '変数有り'; if ($_POST['selectval'] == 'val1') { //val1の処理 } elseif ($_POST['selectval'] == 'val2') { //val2の処理 } elseif ($_POST['selectval'] == 'val3') { //val3の処理 } } else { echo '変数無し'; } ?>

JavaScript

$('input[type="checkbox"]').on('click', function() { if ($(this).prop('checked')){ $('input[type="checkbox"]').prop('checked', false); $(this).prop('checked', true); var getval = $(this).val(); $.ajax({ type: "POST", url: "index.php", dataType : "json", data: { "selectval" : getval, } }) .done(function(data){ console.log(getval); }) .fail(function(XMLHttpRequest, status, e){ console.log(e); }); } });

試したこと

var getval = $(this).val();をvar getval = 'aaa';などに変更しても同じ結果なのでvar getvalの取得には問題はないと思いますが、原因があればご教授頂けたらと思います。

url: "index.php"の部分をインクルードしているPHPファイルに修正したところ、(url: "include-test.php"に修正)
エラーメッセージは表示されなくなりましたが、PHP側に変数が渡っていないようです。
確認用に入れている「変数無し」が表示されたままになっています。

補足情報

該当のPHPコードはindex.phpではなく、index.phpで呼び出している別のPHPファイルに記述しています。
includeを使用していても問題にはならないと思っていますが、間違っていましたらご指摘頂ければと思います。

参考にしたURL:https://tagsqa.com/detail/57110

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2022/07/31 11:49

「該当のソースコード」にhtmlが書かれていますが、これは? htmlも「レスポンス出力」の情報ですよ。
uzr1709

2022/07/31 12:39

「レスポンス出力」の意が理解できず申し訳ありません。 チェックボックスで選択した値を変数としてPHPに渡したいので、そのチェックボックス部分です。 選択した値をjQueryで拾い、ajaxでPHPに変数として渡しその下の処理を選択肢によって変更したいです。 チェックボックスの値取得までは問題なく出来ているのでエラー箇所とは無関係と思っておりましたが、違うのでしょうか。
m.ts10806

2022/07/31 20:54

Ajaxとして実行されるPHPにHTMLを書いてあるのであれば、 それも「出力」なのでJSON形式としてのエラーが出るのは当然という意味になります。 PHPタグ以外は全部出力として扱われるので。 https://www.php.net/manual/ja/language.basic-syntax.phptags.php 違うPHPなのであれば、コードブロックも別にしてもらった方が良いです。
uzr1709

2022/07/31 23:37

ありがとうございます。 新しくajax.phpを作成し、該当のソースコードのPHPコード部分のみ切り出したところ、dataType : "json"であっても「SyntaxError: Unexpected token < in JSON at position 0」のエラーメッセージは表示されなくなりました。 ただ、ajaxからの値が取れていないのは変わらないようで「変数無し」が表示されています。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PHP

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。