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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

4回答

2191閲覧

jQueryの中にPHPを書いたのですがその中にさらにjQueryを書くことは可能でしょうか?

subaru_10

総合スコア11

PHP

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2017/07/31 13:35

編集2017/07/31 14:19

jQueryの中にPHPを書いたのですがその中にさらにjQueryを書くことは可能でしょうか?
やりたいことはappendで追加したいnum[]配列がPOSTメソッドで送られてくるのでそれをPHPで取得したいです。
以下書いてみてダメだった文を乗せます。

row_cnt = 現在のDOMで表示されているtrの数を取得している関数です $('<tr>').append('<input type="text" name="$num[' + row_cnt + ']" value="<?= $num[ + row_cnt + ]?>"')

これでやりたいことがわかってもらえると幸いです。
がんばってググって調べましたがわかりませんでした。。。

追記
申し訳ございません、もう少しやりたいことを詳しく書きます。
上記のコードをsubmitの追加ボタンで起動させ、入力してもらい、送信ボタンで確認画面に飛ばします。
そのあと訂正があった際に戻るボタンで戻ってもらうのですが、その際POSTで来たテキストをそのまま表示させたいのです。
文章を追加する自体は

javascript

1$.each(new Array(<?= count($num) ?>,function(){ 2add_table(); 3});

これで追加したい行を繰り返し実行しています。
今はHTMLとphpのfor文とif文でPOSTあるときのないときで判定し表示していますが、テーブル自体のコードがjQueryとHTMLでほぼ同じものが二つあるのは見栄えが悪いと思い質問しました。

PHP

1<?php if(!isset($_POST)): ?> 2<?php for ($x = 0; $x < count($num); $x++): ?> 3<td><input type='text' name='num[<?= $x ?>]' value='<?= $num[$x] ?>' required></td> 4<?php endfor; ?> 5<?php endif;?>

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

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

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

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

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

zohnam

2017/07/31 13:43

phpはサーバ側で先に実行され、jQueryはクライアントに届いたあと適切なタイミングで実行されますので、できません。というとそれだけで終わってしまいますので、やりたいことの全体像をもうすこし詳しく書いてみてください。代案が回答できると思います。
subaru_10

2017/07/31 14:10

本文のほうに追記いたしました。
guest

回答4

0

ベストアンサー

jQueryの中にPHPを書いたのですがその中にさらにjQueryを書くことは可能でしょうか?

⇒他の方の回答のコメントを見ると、
1つのPHPファイルの中にhtmlもjs(jquery)も記述してあるようですね。

 日本語からは、クライアント側でjs(jquery)を処理している中で、
phpを記述し、クライアント側でphp動かし、
さらに、そのPHPの中でjqueryを実行したい、というように受け取れますが、
であれば、phpはそもそもサーバー側で処理されるものなので、
回答としては、『不可能』になります。

 もし、サーバー側のデータを
js(jquery)の中で処理し、HTMLに反映させたい等、と言う事であれば、可能です。

 (方法1)PHP側であらかじめ取得して、js側の変数に何かしらの形で渡す
(方法2)ajax等を用いて、jsからサーバー側のPHPを呼び出して、PHPからの戻り値を利用する

 ⇒PHP+HTML+CSS+JSを1つのファイルで記述されているとのことで、
方法1を選ばれるかもしれませんが、
MVCを理解し(フレームワークを推奨しているわけではありません)、
ファイルを分けて方法2で開発されることをお勧めします。

投稿2017/07/31 17:22

編集2017/07/31 17:23
tomari_perform

総合スコア760

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

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

subaru_10

2017/08/01 00:40

他の方へ私がした回答も見ていただいてありがとうございます! とてもわかりやすく、私も理解することができました! MVCではまだ一度も作ったことがないのでこの気に作ってみたいと思います ここでの言葉で誠に申し訳ありませんが、皆様もありがとうございました(*´ω`*)
guest

0

jQuery(javascript)とPHPのそれぞれの役割をきちんと把握できてないようですね。

PHPはサーバーサイドで動きます。
最終的にHTMLドキュメントを生成して返すと思っていいでしょう。

そのHTMLドキュメントはブラウザが受信して表示したり、内部のJavascriptを実行します。
ブラウザに届いた時点ではPHPはまったく関係ありません。HTMLドキュメントになっています。

ブラウザ(クライアント、フロントエンド、ローカルetc色々呼び方があります)にてjavascriptが実行されます。

サーバーサイドでPHPを用いて動的にJavaScript(JQuery)のコードを作成することも可能です。
作成されたJavascriptのコードはブラウザにて実行されます。

流れを理解して、ごちゃまぜにならないようにしてください。

投稿2017/07/31 13:53

Tak1016

総合スコア1408

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

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

0

appendで追加したいnum[]配列がPOSTメソッドで送られてくるのでそれをPHPで取得したいです。

そのまま変数を受け渡すのは無理です。Ajaxなどの非同期通信で送るしか方法はないと思います。
余計な通信を発生させたく無いのでしたら仕様を見直すのがいいかもしれないです。

javascript

1var num = { 2 row_cnt : 5 3}; 4 5$.ajax({ 6 type: "POST", 7 url: "渡す先のPHPのURL", 8 data: num 9});

投稿2017/07/31 13:56

IShix

総合スコア1724

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

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

subaru_10

2017/07/31 14:24

申し訳ございません 書き込み不足と文章がおかしかったですね。 どちらかというと渡したいというよりかは受け取りたいのです。
IShix

2017/07/31 14:29

PHPで受け取りたいってことですよね?
IShix

2017/07/31 14:33

でしたら、非同期通信で渡すしかないです。 PHPからJavascriptに受け渡す時はサーバー上でページの準備をする時にJavascriptに渡す変数を指定できますが、ページが表示されて以降、PHPとやりとりするにはAjaxなどで渡すしかないです。
subaru_10

2017/07/31 14:34

そうですね。 今のところPHPのところにjavascriptを書いており、PHPとファイルが分かれていないのです・・・ たしかそういうものをMVCモデルというんでしたっけ? まだ入力フォーム、確認画面、最終画面の3つのファイルを作り、それぞれにPHPとjavascriptで書いているので、渡す先のPHPのURLが一緒なのですがそれでも上記のコードで大丈夫なのでしょうか?(自分で試せって話ですね(´・ω・`))
IShix

2017/07/31 15:36

まだ入力フォーム、確認画面、最終画面の3つのファイルを作り、それぞれにPHPとjavascriptで書いているので、渡す先のPHPのURLが一緒なのですがそれでも上記のコードで大丈夫なのでしょうか? んーーーちょっと言ってる意味がよくわからないです。すみません。 僕なら最終画面を送信するところだけPHPに値を受け渡しそれ以外はJqueryで書きます。 なんどもやりとりめんどうですしね。 あと、ちょっと気になったのですがPOSTの値は直書きですか? 直書きならエスケープなどされた方が良いと思います。 http://php.net/manual/ja/function.htmlspecialchars.php
guest

0

ajaxで取りにいくだけでは?

投稿2017/07/31 13:43

yambejp

総合スコア114581

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問