在下面的代码中,如何将变量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
,但这不起作用。
答案 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'])
。
希望这有帮助。