3

以下のコードでは、この場合の の値が であるため、PHP 関数が実際に読み取るように、変数を文字列に連結cする方法namefoo()foo('name1')c1

$(function(){

var c = 1;

$('#foo').click(function() {
    $('#bar').append('<div style="color:red">\n\
                        Name:<?=foo('name')?>\n\
                    </div>');   
    c++;
    });
});

編集:

の値に応じて文字列 (または など)foo()を返すだけです。私が実際に必要としているのは、このようなものですが、うまくいきません。name1name2c<?=foo('name' + c)?>

4

3 に答える 3

2

PHP はサーバー側で発生し、javascript はクライアント側で発生するため、実際にはこれを行うことはできません。javascript で更新された値で呼び出された php メソッドの結果を使用する場合は、ajax を使用する必要があります。このようなもの:

var c = 1;

$('#foo').click(function() {
    $.ajax({
        url: 'something.php?c=' + c,
        success: function(name) {
            $('#bar').append('<div style="color:red">\n\
                Name:' + name + '\n\
            </div>');   
        }
    });

    c++;
});

ここでsomething.phpは、単一のリクエスト パラメータ「c」を受け​​入れ、出力のみを行う必要があります。

<?= foo('name' . $_GET['c']) ?>
于 2012-11-25T12:06:21.157 に答える
0

連結演算子を使用+し、代わりに

Name:<?=foo('name')?>\n\

書きます:

Name:<?=foo('name' + i)?>\n\

それでも、これはあなたが望むようには機能しません。PHP はサーバー側にあるため、JavaScript からサーバーにリクエストを送信する必要があります。また、JS コードを危険にさらすのはむしろ PHP であるため、アプリケーション ロジックを再構築する必要があります。

編集

それ以外の

$('#bar').append('<div style="color:red">\n\
                    Name:<?=foo('name')?>\n\
                </div>');

試す

$('#bar').append('<div style="color:red">\n\
                    Name:<?=foo(\'name\'' + i + ')?>\n\
                </div>');
于 2012-11-25T12:05:24.270 に答える
0

これは不可能です。JavaScript はクライアントで実行されるため、php と混在させることはできません。あなたができることは、ajaxを使用してサーバー<->クライアント通信を実現することです。

$.ajax({
  type: 'POST',
  url: "your_php_file.php", 
  data: {"counter": c},
  success: function (val) { 
      $('#bar').append('<div style="color:red">Name:' + val + '</div>');   
  }
});

したがって、このようにサーバー側で関数を呼び出しますfoo($_POST['counter'])

お役に立てれば。

于 2012-11-25T12:08:15.600 に答える