在我的jquery代码中发出我的php函数

时间:2013-04-10 06:37:49

标签: php jquery function integer

我想在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错误,但没有任何反应

3 个答案:

答案 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是不可能的。