为什么使用jquery调用php函数会返回php代码

Why a call to a php function with jquery returns the PHP code

本文关键字:php 函数 返回 代码 调用 jquery 为什么      更新时间:2023-09-26

我有这个php文件

    if(isset($_GET['fn']))
    {
    if($_GET['fn']=='generarxml')
    generarxml();
    else 
    exit;
    }

    function generarxml()
    {
            alert("si jalo");
    }

当我想调用"generaarxml"函数时,它会返回整个代码,而不是应答或警报。我这样称呼它。

    function test()
            {
            $.ajax({
                                            url: "/include/generaxml.php?fn=generarxml",
                                            type: 'post',
                                            data: {},
                                            success: function(output){
                                                 alert (output);
                                            }
                                      });
            }

您似乎没有将PHP代码封装在<?php ?>标记中,或者web服务器没有配置为将PHP代码传递给PHP引擎。此外,alert()在PHP中不存在,请使用echoprint

下面是一个代码应该是什么样子的例子:

<?php
function generarxml() {
    echo "si jalo";
}
if(isset($_GET['fn']) && $_GET['fn'] == "generarxml") {
    generarxml();
}
?>

首先让我们弄清楚一些事情:

  1. 你的机器上有一个编译php的服务器吗?看看WAMP/XAMP,如果你没有,这些非常受欢迎
  2. 你在哪里运行/调用代码?你是怎么得到错误的
  3. 在哪里定义alert()函数?看起来你正试图在php中使用javascript代码——它并没有像预期的那样工作,因为php是服务器端语言(在服务器上编译),而javascript是客户端语言(在用户机器上编译)

最后,你的目标是什么,你想做什么?

我认为您将一些javascript代码与PHP代码(两种不同的语言)混淆了

尝试更改php文件,使其返回或响应您需要的答案:

<?php
if(isset($_GET['fn']))
{
    if($_GET['fn']=='generarxml')
       return generarxml();
    else 
       return false;
}

function generarxml()
{
   return ("si jalo");
}
?>

如果这不起作用,我建议你考虑A。Wolff评论说,您的服务器可能没有正确处理您的php文件。