0

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

4

3 回答 3

1

写一个file.php

<?php
my_function(myvar,1);
?>

并在 html 页面中使用

$('#mydiv').load('file.php');
于 2013-04-10T06:46:08.580 回答
1

你做错了方法,你不能用这个方法,var myvar; 是一个 javascript 变量,只能在您的浏览器中使用。但是 my_function() 在 Web 服务器中执行;您可以在 javascript 中放置一个 php 变量,但不能在 php 函数中使用 javascript 变量作为参数。将 myvar 设置为 php变量,如果可能,然后将其放入您的函数中。或者您可以使用 ajax 将 javascript 变量传递给 php 函数。

把你的函数放到一个php文件中,然后

     $('#mydiv').load('file.php?myvar='+myvar);

是可以的,可以在$_GET['myvar']中获取值

于 2013-04-10T06:53:10.110 回答
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 中定义变量或使用 a$_GET$_POST变量在 PHP 中设置它。

如果您想使用动态值,则需要对另一个文件进行 AJAX 调用(您必须按照我上面的建议进行操作)。

像您那样混合 PHP 和 JavaScript 是不可能的。

于 2013-04-10T06:59:50.437 回答