0

javascriptを使用して、PHPの$_SESSION変数に格納されている値を入力タグの「value」属性に挿入しようとしています。「value」属性にPHPコードを正常に挿入できましたが、保存された値がテキストボックスに表示されません。私のコードは以下の通りです:

HTML:

<input type="text" name="fname" value="" />

Javascript:

fields.eq(n).attr('value', "<?php echo $_SESSION['fname'] ; ?>");

問題は、これが通常、変数の値を$_SESSION['fname']入力ボックスに配置することです。しかし、そうではありません。ボタンをクリックしてPHPコードをvalue属性に挿入すると、HTMLは次のようになります。

<input type="text" name="fname" value="<?php echo $_SESSION['fname'] ; ?>" />

これは私が望むものですが、テキストボックスには、実際にはPHPコードが表示され、に格納されている値は表示されません$_SESSION['fname']

足りないものはありますか?これはうまくいかないのですか?どんな助けでも大歓迎です!

ここに画像の説明を入力してください

4

3 に答える 3

1

PHP はサーバー側スクリプトです。つまり、PHP はサーバー上で実行されます。

JavaScript はクライアント スクリプトです。つまり、JavaScript はブラウザによって実行されます。

通常、デフォルトでは、ファイルはサーバー上.phpの PHP エンジンによって処理され、PHP スクリプトが実行されます。結果はクライアントに送信されます。そのため、ファイルがある場合、との間の処理は PHP エンジンによって処理され、実際の PHP スクリプトはクライアントに表示されません。ファイルが PHP エンジンによっても処理されるように、HTTP サーバーを構成できる場合があります。.php<?php?>.html

その他のファイルの場合、HTTP サーバー (Apache など) は、PHP エンジンによって処理されることなくファイル全体をクライアントに直接送信するため、PHP スクリプトは処理されず、クライアントに直接送信されます

ここでの問題は、PHP を JavaScript ファイル ( ) に入れようとして.js、それが実行されることを望んでいるのに、実際には実行されないことです。したがって、表示された JavaScript で入力要素の値を設定しようとすると、「テキスト」<?php echo $_SESSION['fname'] ; ?>が設定されます。

JavaScriptをファイルに入れるか、.phpJavaScript ファイル ( *.js)の名前を に変更する*.phpと、目的の値が得られます。

または、ページに追加の JavaScript を追加して、PHP で「グローバル」変数を設定し、その「グローバル変数」を.jsファイルで使用することもできます。
すなわちwindow.myFname = <?php echo $_SESSION['fname'] ; ?>;


やりたいことに応じて、デザイン方法を選択する必要がある場合があります。単純に値を設定したい場合は、私が提供した 2 つの提案のいずれかを実行するだけでかまいません。値を動的に取得する (つまり、必要なときに値を取得する) 場合は、他の人が提案したように AJAX が必要です。

于 2012-12-04T07:25:45.000 に答える
1

PHPコードはリクエスト時に解釈されるため、ブラウザ/JavaScriptに関する限り、単純な文字列として「注入」するコードについて考える必要があります。

セッション変数の値を返すコールバックを使用して、次のようにすることができます。

$('#someButton').click(function() {
     $.ajax({
           type: 'POST',
           url: <callbackUrl>,
           data: <params if any>
           }).done(function( msg ) {
                fields.eq(n).attr('value', msg);
                });
});
于 2012-12-04T07:08:38.120 に答える
0

jQueryライブラリが含まれているとします。

getUser.php

<?php echo $_SESSION['fname']; ?>

JavaScriptについては、

$(document).ready(function(){
    $.get("getUser.php", function(data) {
      fields.eq(n).attr('value', data);
    });
});

参考までに、http://api.jquery.com/jQuery.get/

于 2012-12-04T07:15:23.300 に答える