我想在jquery函数.html()中执行php函数。 php函数将2个整数作为参数。
此代码有效
$(function() {
var myVar = 1;
$('#myDiv').html('<? echo my_function('+myVar+','+1+'); ?>');
});
而这个没有:
$(function() {
var myVar = 1;
$('#myDiv').html('<? echo my_function('+myVar+','+myVar+'); ?>');
});
我没有php错误,但没有任何反应
答案 0 :(得分:1)
写一个file.php
<?php
my_function(myvar,1);
?>
并在html页面中使用
$('#mydiv').load('file.php');
答案 1 :(得分:1)
你做错了方法, 你不能使用这种方法, var myvar;是一个javascript变量,只能在你的browser.But my_function()在web服务器上执行;你可以在javascript中放一个php变量,但不可能在php函数中使用javascript变量作为参数。将myvar作为一个php变量,如果可能的话然后把它放到你的函数中。或者你可以使用ajax将javascript变量传递给php函数。
将您的函数放入php文件,然后
$('#mydiv').load('file.php?myvar='+myvar);
是可能的,您可以在$ _GET ['myvar']
中获取值答案 2 :(得分:0)
我刚尝试过。那么,会发生什么:PHP解析器只关心<? ?>
标签内的内容,没有别的。所以它看到了这个:
echo my_function('+myVar+','+1+');
使用两个参数调用该函数,两个字符串:+myVar+
和+1+
。你可以把它放在你的函数中来检查:
function my_function() {
$argv = func_get_args();
var_dump($argv);
}
它将输出:
array(2) {
[0]=>
string(7) "+myVar+"
[1]=>
string(3) "+1+"
}
在提供PHP生成的文件后,客户端会看到:
$(function() {
var myVar = 1;
$('#myDiv').html('The output of your my_function()');
});
现在不再使用您的JavaScript变量了。
如果要打印具有已知ID的内容,可以在PHP中定义变量,或使用$_GET
或$_POST
变量在PHP中设置它。
如果你想使用动态值,你需要对另一个文件进行AJAX调用(你必须按照我的建议去做)。
像你一样混合使用PHP和JavaScript是不可能的。