如何在Jquery和PHP中连接字符串

时间:2012-11-25 12:01:51

标签: php jquery string concatenation

在下面的代码中,如何将变量c连接到字符串name,以便PHP函数foo()实际上读取foo('name1'),因为{的值{1}}在这种情况下是c

1

修改

所有$(function(){ var c = 1; $('#foo').click(function() { $('#bar').append('<div style="color:red">\n\ Name:<?=foo('name')?>\n\ </div>'); c++; }); }); 都会返回字符串(例如,foo()name1),具体取决于name2的值。 我真正需要的是这样的c,但这不起作用。

3 个答案:

答案 0 :(得分: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']) ?>

答案 1 :(得分:0)

使用连接opeartor +,而不是

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

写:

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

但是,这仍然无法正常工作。因为PHP在服务器端,你需要从JavaScript向服务器发出请求。而且因为它是相当于PHP的JS代码,所以你需要重新设置你的应用程序逻辑。

修改

而不是

$('#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>');

答案 2 :(得分:0)

这是不可能的,因为javascript是在客户端上执行的,因此不能与php混合使用。你可以做的是使用ajax来实现服务器&lt; - &gt;客户沟通。

$.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'])

希望这有帮助。