0

在客户端(js)我使用这个脚本

    jQuery.ajax({
    type: "GET",
    url: "editold.php",
    data: "call=generateCode",
    success: function (response) {
        alert("Succesful getting php file");
    },
    error: function (response) {
         alert("Error getting php file");
    }
});

在服务器端(php)即时使用此代码:

<?php 



if($_SERVER['REQUEST_METHOD']=="GET") {
echo '<script type="text/javascript">' . 'alert(" ' . 'hey' . '");' . '</script>'; 
$function = $_GET['call'];

    if(function_exists($function)) {        
        call_user_func($function);
    } 
    else {
        echo 'Function Not Exists!!';
    }
}

function generateCode() {
echo '<script type="text/javascript">' . 'alert(" ' . 'hey' . '");' . '</script>'; 
}
?>    

虽然我确实收到了一个警报,说我的成功功能警报意味着文件已成功加载,但我似乎没有让最终的 generatecode 函数工作。(我没有收到第二个警报。)

我尝试了很多东西,但似乎没有任何效果。

我该怎么办?..

4

2 回答 2

2

这应该这样做:

jQuery.ajax({
    type: "GET",
    url: "editold.php",
    data: {call: "generateCode"}, // <-- This one is changed into an object
    success: function (response) {
        alert("Succesful getting php file");
        $('body').append(response); // <-- Append the ajax response to the page body
    },
    error: function (response) {
        alert("Error getting php file");
    }
});

如果没有,请尝试var_dump($_GET);在您的 PHP 文件中进行操作。

于 2013-09-22T23:17:55.923 回答
0

1-在服务器端发送没有脚本标签的响应。

2-在客户端使用 eval() 函数来执行您的代码。

if($_SERVER['REQUEST_METHOD']=="GET") {
echo 'alert(" ' . 'hey' . '");';
$function = $_GET['call'];

if(function_exists($function)) {        
    call_user_func($function);
} 
else {
    echo 'Function Not Exists!!';
}
}

function generateCode() {
//your code 
}


jQuery.ajax({
    type: "GET",
    url: "editold.php",
    data: "call=generateCode",
    success: function (response) {
        alert("Succesful getting php file");

        eval(response);
    },
    error: function (response) {
        alert("Error getting php file");
    }
});
于 2013-09-22T23:47:39.140 回答