gpt4 book ai didi

php - 使用 Jquery 和 Ajax 从 PHP 调用特定函数

转载 作者:可可西里 更新时间:2023-11-01 12:47:35 25 4
gpt4 key购买 nike

对我来说这是新事物,所以我只是在研究它并试图理解它。正如您在 php 脚本中看到的那样,有 2 个函数,我试图用 jquery 调用一个特定的函数。

现在,如果我有一个功能,那么我就可以做到,但是当我有 2 个或更多功能时,我就开始卡住了。我想当我有 2 个函数时我可以这样做,但是一旦有更多的变量在起作用或更多的函数,我是否只是在我的 php 中制作大量的 if 语句?

问题是,当我将数据库附加到它时,我需要考虑所有可能发生的输入。如何在使用 jquery 和 ajax 时指定特定的 php 函数?

//function.php
<?php
function firstFunction($name)
{
echo "Hello - this is the first function";
}

function secondFunction($name)
{
echo "Now I am calling the second function";
}

?>

<?php
$var = $_POST['name'];

if(isset($var))
{
$getData = firstFunction($var);
}
else if(isset($var))
{
$getData = secondFunction($var);
}
else
{
echo "No Result";
}

?>

//index.html
<div id="calling">This text is going to change></div>

<script>

$(document).ready(function() {
$('#calling').load(function() {
$.ajax({
cache: false,
type: "POST",
url: "function.php",
data: 'name=myname'
success: function(msg)
{
$('#calling').html((msg));
}

}); // Ajax Call
}); //event handler
}); //document.ready

</script>

最佳答案

您需要通过数据对象或通过 URL 上的 GET 变量传递一个参数。要么:

url: "function.php?action=functionname"

或:

data: {
name: 'myname',
action: 'functionname'
}

然后在 PHP 中,您可以访问该属性并处理它:

if(isset($_POST['action']) && function_exists($_POST['action'])) {
$action = $_POST['action'];
$var = isset($_POST['name']) ? $_POST['name'] : null;
$getData = $action($var);
// do whatever with the result
}

注意:出于安全原因,一个更好的主意是将可以调用的可用函数列入白名单,例如:

switch($action) {
case 'functionOne':
case 'functionTwo':
case 'thirdOKFunction':
break;
default:
die('Access denied for this function!');
}

实现示例:

// PHP:
function foo($arg1) {
return $arg1 . '123';
}

// ...
echo $action($var);

// jQuery:
data: {
name: 'bar',
action: 'foo'
},
success: function(res) {
console.log(res); // bar123
}

关于php - 使用 Jquery 和 Ajax 从 PHP 调用特定函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25677368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com