我知道ajax是如何工作的,但我想知道如何从特定的php函数中检索数据,所以我不为每个函数创建一些页面1页面可以完成所有的工作。
AngularJs:
function abc(){
echo 'abc';
}
腓:
NotificationCompat.Builder
答案 0 :(得分:1)
问题是你的PHP文件。你应该这样做:
<?php
$post_date = file_get_contents("php://input");
$data = json_decode($post_date);
//now i am just printing the values
echo "Name : ".$data->name."n";
在PHP页面中,我们将检索json数据并使用它json_decode进行解码。请记住,这只是一个例子,因为您可以改进代码。我只是给你一个极简主义的方式来做到这一点。
如果您需要其他相关内容,请与我联系。
/////// 新编辑 - 将变量发送到PHP ///////
<强>角强>
$http({
url: "urltopost.php",
method: "POST",
data: {
data: variable
}
}).success(function(response) {
console.log(response);
});
<强> PHP 强>
<?php
$request = json_decode( file_get_contents('php://input') );
$variable = $request->data
答案 1 :(得分:0)
将另一个键添加到data
设置以获取特定功能的特定输出。
只是让它成功的想法,根据需要进行修改
JS :
data: {
name: 'myname',
_method: 'my_custom_function',
},
然后在PHP中检查请求哪个函数需要调用特定任务。
使用$_REQUEST
非常有用天气请求POST
或GET
它总是可以缓存,然后由method_exists
验证,如果类中存在方法,它将由{call_user_func
执行1}}来自给定的类实例。
的 function.php 强>
class Ajax_calls{
// ... multiple functions goes here
public function my_custom_function() {
// Your logics
}
}
if( isset( $_REQUEST ) ) {
$obj = new Ajax_calls();
$method = $_REQUEST['_method'];
if( method_exists($obj, $method) ) {
$data = call_user_func(array($obj, $method));
echo json_encode($data);
}
else {
echo json_encode("no function found");
}
}
答案 2 :(得分:0)
为什么不通过选择要执行的功能的函数将代码添加到php文件中?检查要发送到functions.php的变量的值,然后做出决定。例如:
$action = $_GET["name"];
switch ($action){
case "myname":
abc();
break;
default:
echo "";
break;
}
function abc(){
echo "abc";
}
我更喜欢分离&#34;控制器&#34;的逻辑。和函数文件有一个controller.php
require_once('functions.php');
$action = $_GET["name"];
switch ($action){
case "myname":
abc();
break;
default:
echo "";
break;
}
和一个functions.php
function abc(){
echo "abc";
}
但那取决于你
答案 3 :(得分:-3)
您可以通过将函数名称作为GET变量传递来实现。然后使用eval ()
var app = angular.module("myapp",[]);
app.controller("usercontroller",function($scope,$http){
$http({
method : "GET",
data: "fx=abc",
dataType: "text",
url : "functions.php",
data: {
name: 'myname',
},
}).then(function mySuccess(response) {
$scope.myWelcome = response.data;
}, function myError(response) {
$scope.myWelcome = response.statusText;
});
});
if (function_exists ($_GET['fx']))
eval ($_GET['fx'].'();');
function abc(){
echo 'abc';
}