0
我想知道是否有任何好的做法,以Ajax的方式從Javascript類中調用方法。在javascript中調用php類函數(ajax)
這是我現在的「樣式」來執行它。
(類中的方法,這裏只是舉例)
PHP端:
<?php
if(isset($_POST['action']) && $_POST['action'] != null)
{
extract($_POST);
if($action)
{
$ajaxCommand = new EleveUpdate();
if(method_exists($ajaxCommand, $action))
{
$reponse = call_user_func(array($ajaxCommand, $action),$_POST);
echo $reponse;
exit(0);
}
else
{
throw new Exception("Cette méthode n'existe pas");
}
}
}
else
{
echo 'Cette action n\'est pas autorisée';
return false;
}
class EleveUpdate
{
public function __construct()
{
}
public function testfunct($data)
{
echo $data['eleve'];
}
}
JavaScript端:
$(document).ready(function() {
$.ajax({
url: 'eleveupdate.php',
type: 'POST',
data: {
action: "testfunct",
eleve: 1
},
beforeSend: function()
{
loading(true);
},
error: function()
{
console.log('error');
},
success: function(data)
{
loading(false);
console.log(data);
}
});
});
的問題是,isset $ _ POST總是在我的班級中,我很確定這不是正確的做法,我在這裏找到了幫助。
感謝您提前
西蒙
你認爲應該發生什麼,而發生什麼呢?此外,嘗試將類聲明放在最前面。 – gd1 2013-02-17 22:01:45
這個想法是有一個更「優雅」的方式來做到這一點。這種方法完美地工作,但是,我不知道我是否想要像這樣使用它。一切都按照我想要的方式返回,但我想要找到「良好實踐」的方式:) – Simon 2013-02-17 22:13:51
我看到的唯一'問題'是有人可以從外部調用你的課程的任意方法。如果你的課程只包含「安全」方法,那就沒有問題了。而且,我不喜歡對$ _POST變量使用extract()。 – gd1 2013-02-17 22:17:43