如何使用jQuery ajax调用PHP函数?

我有一个名为myfunctions.php的文件,其中有很多函数,比如</ p>
\ n

  function sendForm(){
// save form
}
function fn2(){
// //做某事
}
//其他函数......
</ code > </ pre>

和jquery代码,</ p>

  $。ajax({
url:“myfunctions.php”,
type: “POST”,
contentType:“application / x-www-form-urlencoded”,
data:{key1:“value1”,key2:“value2”,key3:“value3”},
完成:function( ){
// completado
alert(“complete”);
}
});
</ code> </ pre>

我需要在此文件中调用特定函数; 例如 sendForm()</ code>。 我怎么能这样做?</ p>
</ div>

展开原文

原文

I have a file called myfunctions.php where I have a lot of functions, like

function sendForm(){
    //save form
}
function fn2(){
 //do something
}
 // Other functions ...

and the jquery code,

$.ajax({
    url: "myfunctions.php",
    type: "POST",
    contentType: "application/x-www-form-urlencoded",
    data: {key1: "value1", key2: "value2", key3: "value3"},
    complete: function(){
        //completado
        alert("complete");
    }
});

I need call specific function in this file; for example sendForm(). How can I do that?

2个回答



在PHP中</ p>

 &lt;?php 
//创建一个列表 已批准的函数调用
$ approved_functions = array('sendForm','fn2');

//检查$ _GET ['function']并查看它是否与已批准的函数匹配
if(in_array($ _ GET [ 'function'],$ approved_functions))
{
//调用已批准的函数
$ _GET ['function']();
}

函数sendForm(){
//保存表单\ n}

函数fn2(){
//做某事
}
</ code> </ pre>

在AJAX中</ p>

   //指定要调用的函数
url:“myfunctions.php?function = sendForm”,
</ code> </ pre>
</ div>

展开原文

原文

In PHP

<?php
// create a list of approved function calls
$approved_functions = array('sendForm','fn2');

// check the $_GET['function'] and see if it matches an approved function
if(in_array($_GET['function'], $approved_functions))
{
    // call the approved function
    $_GET['function']();
}

function sendForm(){
    //save form
}
function fn2(){
 //do something
}

In AJAX

// specify which function to call
url: "myfunctions.php?function=sendForm",

douqiong8412
douqiong8412 不,我建议不采用其他方法。 如果您愿意放弃Web应用程序的安全性和完整性,那么您可以跳过$ approved_functions检查并执行$ _GET ['function']内部的任何内容。 只需调用$ _GET ['function'](); 但只知道你会受到不需要的函数注入,如这个url:“myfunctions.php?function = phpinfo”,
5 年多之前 回复
douna3367
douna3367 但我会为50多个功能做更多...其他建议?
5 年多之前 回复



  $ .ajax({
//....n data:{key1:“value1”,key2: “value2”,key3:“value3”,类型:0},
//....n});

nn

myfunctions.php </ code>:</ p>

 &lt;?php 
// ...
if(!isset($ _ POST ['type'])){/ *返回一些东西 */ 出口; }
$ type = $ _POST ['type'];
if($ type == 0)
{
function1();
} else if($ type == 1){
function2() ;
} //etc.
//...
?>

</ div>

展开原文

原文

$.ajax({
    //...
    data: {key1: "value1", key2: "value2", key3: "value3", type:0},
    //...
});

myfunctions.php:

<?php
//...
if (!isset($_POST['type'])) { /* return something */ exit; }
$type = $_POST['type'];
if ($type == 0)
{
    function1();
} else if ($type == 1) {
    function2();
} //etc.
//...
?>

drlh197610
drlh197610 不,这是最安全,最标准的方式。
5 年多之前 回复
douxiandiyo58855
douxiandiyo58855 不是有另一种方式吗?
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问