PHPファイルで定義した変数を引数としてJvaScrptファイルに渡す方法がわかりません。どうしたらいいでしょうか?具体的には、
***.php
<?php
class *** {
public function printhello() {
$i = "Hello World!";
echo $i;
}
public function aXces() {
$title = "***会社";
$link = "***.php";
$palam = $_POST[name]
echo "<a href=\"$link\" onclick=\"hL($palam)\">$title</a>";
}
}
?>
この$palamをJavaScriptのファイルに渡したいんです。
***.js
function hL($palam) {
document.body.innerHTML=document.body.innerHTML.replace(/$palam/g,'<span style=\"background-color : yellow\">$palam</span>');focus();
}
ってやってもなかなかうまくいきません。どうすればいいですか?
No.3
- 回答日時:
>echo "<a href=\"$link\" onclick=\"hL($palam)\">$title</a>";
$palamの前後に'を付けないとJavascriptとしてエラーになります。
あとparamです。
この回答への補足
お返事ありがとうございます。参考にさせていただきました。それでなのですが、PHPからJavaScriptに変数を引数として渡すことは、
document.write(answer);
で成功したことが確認できましたが、
document.body.innerHTML=document.body.innerHTML.replace(/$palam/g,'<span style=\"background-color : yellow\">$palam</span>');
focus();
の部分がうまくいきません。どうしてでしょうか?何かいいアドバイスはありませんか?
No.4
- 回答日時:
> echo "<a href=\"$link\" onclick=\"hL($palam)\">$title</a>";
既に回答がありますが、’(シングルクォーテーション)で囲めば、求めている処理は満たせるかと思います。
ただ入力された値をそのままHTMLに出力するのはよく知られた脆弱性ですので、なるべくやらないように気を付けた方が良いです。
以下のように修正すれば、’(シングルクォーテーション)などを入力されても、問題ありません。
$palam = htmlspecialcharactors($_POST[name])
echo "<a href=\"$link\" onclick=\"hL('$palam')\">$title</a>";
この回答への補足
お返事ありがとうございます。参考にさせていただきました。それでなのですが、PHPからJavaScriptに変数を引数として渡すことは、
document.write(answer);
で成功したことが確認できましたが、
document.body.innerHTML=document.body.innerHTML.replace(/$palam/g,'<span style=\"background-color : yellow\">$palam</span>');
focus();
の部分がうまくいきません。どうしてでしょうか?何かいいアドバイスはありませんか?
No.5ベストアンサー
- 回答日時:
JavaScriptの方でもエラーになっていたのですね。
見落としていました。こちらでどうでしょうか?
function hL($palam) {
var re = eval('/'+$param+'/g');
document.body.innerHTML=document.body.innerHTML.replace(re,'<span style=\"background-color : yellow\">'+$palam+'</span>');
focus();
}
PHPと混同しているようですが、以下の点が異なります。
・PHPには変数に$が必須だが、JavaScriptでは不要
・PHPで"で囲まれた変数は解釈されますが、JavaScriptでは解釈されません。
・PHPは'で囲まれた文字列を.で結合させるが、JavaScriptでは'もしくは"で文字列を囲み+で結合させます。
/で囲まれた箇所は、文字列ではなく正規表現オブジェクトで、ちょっと特殊な処理をしています。
一度、生成したい正規表現オブジェクトを文字列で生成し、eval関数という文字列をJavaScriptのコードとして解釈させることで、最終的な正規表現オブジェクトを生成しています。
以下の例の方が分かり易いかもしれません。
例)
var param = 'abc';
var re_str = '/'+param+'/g'; // '/abc/g'(文字列)
var re = eval(re_str); // /abc/g (正規表現オブジェクト)
'abcdefgabcdefgabcdefg'.replace(re,'<span>'+$param+'</span>'); // <span>abc</span>defg<span>abc</span>defg
PHPはサーバー側の処理で、JavaScriptはクライアント側の処理なので、処理は相容れません。
関数を.jsファイルで定義しているのであれば、PHPの文法などに引きずられず、JavaScriptに注力すればよいかと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaScriptでグローバル変数に...
-
jquery か javascript で json ...
-
ローカルのレジストリを読みたい
-
JavaScriptでオブジェクトを識...
-
Webページ中の javascript をVB...
-
【javascript】プロパティ?オ...
-
正整数の半角数字かどうか判定する
-
JavaScriptでテキス...
-
「終了していない文字列型の定...
-
ASP(VBS) ←→ JavaScript の変数...
-
VB.NET2003 テキストボックスに...
-
Vba SelStart、SelLen教えてく...
-
JSPの処理の途中で、JavaScript...
-
Ajax以外で、JavaScriptからPHP...
-
「光の三原色」みたいな「三つ...
-
Javascriptエラーの原因が分か...
-
csvファイルを読み込み、該当項...
-
Win版IllustratorCS3でJavascri...
-
VBScript から JavaScript を呼...
-
初心者です。gulpでコンパイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
jquery か javascript で json ...
-
エクセル2010のvbaについて
-
javaScriptでグローバル変数に...
-
画面間でのJavaScrip...
-
文字を移動させその位置を表示...
-
フォルダ内のファイル名を取得...
-
オライリーのプログラミングPHP...
-
ASP.NETでURLにマッピングされ...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
一定時間経つと画像を消す方法
-
クラス デフォルトプロパティの...
-
event.srcElementの動的設定
-
「リンク」と「ハイパーリンク...
-
VBAの引数の指定 カッコとイコ...
-
strictモードでなぜエラーにな...
-
JSの「document.getElementById...
-
Shell.ApplicationでのIEオブ...
おすすめ情報