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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

4回答

1383閲覧

JavaScriptfでセレクター内にphpからの変数の文字を入れる方法

aosachi0520

総合スコア16

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/02/26 22:17

編集2020/02/27 01:52

html上でのJava scriptですが

phpからの変数をセレクタ内にいれたいと思っています。

JavaScript

1 2$(function(){ 3var numero='<?php echo $acc_numero; ?>'; 4$(numero).click(function(){ }); 5}); 6

例えば
acc_numeroが.close_acc455であれば
$(numero).click(function(){ });が
$('.close_acc455').click(function(){ });
にしたいと思っています。

php

1$acc_numero = '".close_acc455"';

html

1 <script> 2$(function(){ 3 var numero='".close_acc455" 4 '; 5 $(".close_acc455").click(function(){ 6 }); 7 }); 8</script>

現状では以下になってしまいます。

html

1 <script> 2$(function(){ 3 var numero='".close_acc455" 4 '; 5 $(numero).click(function(){ 6 }); 7 }); 8</script>

サイトの構築上phpから個別の番号を渡しております。

どうすれば良いでしょうか?

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

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

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

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

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

m.ts10806

2020/02/26 22:32

PHPの必要性が不明です。前提や背景も記載してください
m.ts10806

2020/02/26 22:43 編集

それにJavaScriptでもクォートで囲えばただの文字列ですし… 全くPHPの問題ではないですよ。固定文字列で試してから移行されては。
miyabi_takatsuk

2020/02/27 00:03

HTML上(PHP)のjavascriptなのか、それともJSファイル上なのかの状況も記載ください。 JSファイルなのであれば、JSファイルの出力自体をPHP上でせねばならなく、非常に問題の切り分けもしずらく、構築をそもそも変えた方がいいかと。
aosachi0520

2020/02/27 00:31

$(numero).click(function(){ });の書き間違いです。申し訳ありません。 html場での scriptです。
miyabi_takatsuk

2020/02/27 00:36

その事を質問本文に記載ください。 そして、コードは修正してください。
miyabi_takatsuk

2020/02/27 01:33

修正ありがとうございます。 もう一点確認です。 質問しているってことは、実際にPHPを実行しても、セレクタが入っていない、動作しない、ってことでよろしいですか? もし、まだ実行していない、となれば、質問する前に、ご自身で実行して確認すればいいだけの話なので、 質問するまでもないかと・・・。 また、実際に実行して、意図した通りに動作しないのであれば、 現状は、こういう文字列が出てくる、意図としてはこんな文字列がechoされてほしい、 など、具体的な状況を質問に記載しましょう。
miyabi_takatsuk

2020/02/27 02:00 編集

ええと、phpの変数の中に"が入ってしまう、ということですか? phpのその変数の出力自体は、質問者さんがしているのでしょうか? であれば、"入りの文字列にする必要は全くありません。 .close_acc455という文字列だけをphp変数に格納すればいいです。 JavaScript上の、numero変数は文字列として扱われる状態なので、 後者の構文で動くはずです。 PHPからの出力が、"が外せない状態なのでしょうか? それであれば、また回答の方向性も変わってきますので、確認ばかりで恐縮ですが、 お応えをお願いします。
guest

回答4

0

ベストアンサー

質問の修正などをみている限り、
プログラム上での文字列の扱いに関して誤解があるようにお見受けします。

質問のPHP構文だと、"も含みの文字列となるため、
質問の後半の構文は動きません。
なぜなら、セレクタ自体に"が入るので。".close_acc455"なんてセレクタ、無効になりますよね?
CSS上でそんなセレクタ書いたら、エラーさえ出てしまうでしょう。

なので、PHPの変数を下記のような代入状態にしましょう。

php

1$acc_numero = '.close_acc455';

そうすれば、下記が有効になります。

javascript

1<script> 2$(function(){ 3 var numero = '<?php echo $acc_numero; ?>'; 4 $(numero).click(function(){ 5 }); 6}); 7</script>

こうすることにより、JavaScript上のnumero変数は文字列として、.close_acc455という状態のため、
$(numero)が有効になります。

ただ、もし、PHP変数からは"を外せない、とならば、下記のようにするといいでしょう。

javascript

1<script> 2$(function(){ 3 var numero = <?php echo $acc_numero; ?>; 4 $(numero).click(function(){ 5 }); 6}); 7</script>

PHPからの出力ですでに、文字列であることを示す、"が含まれているため、
JavaScriptコード上で改めて文字列を示す'をつける必要はないということです。

投稿2020/02/27 02:26

miyabi_takatsuk

総合スコア9528

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

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

0

PHP がサーバーサイドレンダリングした結果が
ブラウザ側でどのようになるか、HTMLソースを見れば一目瞭然のはずです。

javascript

1// output by PHP 2$(function(){ 3 var numero='<?php echo $acc_numero; ?>'; 4 console.log( numero ); // セレクタ文字列のはず 5 $( numero ).click(function(){ }); // セレクタが格納された変数を jQuery に渡す。 6});

投稿2020/02/26 22:30

AkitoshiManabe

総合スコア5432

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

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

0

文字列を入れたいのですか?
なら単純に

javascript

1var huga = '<?= $hoge ?>';

でいけませんか?

てか一度画面表示すれば、取れているかわかるかと・・・

投稿2020/02/26 23:38

NEO_PLANETT-777

総合スコア333

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

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

m.ts10806

2020/02/26 23:50

問題は下記ですしね >$('numero')
guest

0

php側でapiを用意して$.ajaxで受け取って$.whenで処理するとよいかもしれません

投稿2020/02/27 00:17

yambejp

総合スコア114839

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問