我想通过Ajax发送PHP类内的POST值,以更改我的SQL查询。在PHP类中发送Ajax post值
PHP页面
//Link page with Classes
require_once('mPortfolio.php');
$mPortfolio = new Portfolio();
$all = $mPortfolio->getAll();
//Echo sql results here
//AJAX to send filter value to PHP with Classes
$('#filters a').on('click', function(e){
var filter = $(this).data('filter');
$.ajax({
type: 'POST',
url: 'models/mPortfolio.php',
data: {filter: filter},
success: function(data){
alert(data);
}
});
PHP类mPortfolio.php
echo $_POST['filter']; //This works !
require_once $_SERVER["DOCUMENT_ROOT"].'/models/db/db.php';
class Portfolio{
private $_db;
public function Portfolio()
{
$this->_db = new db();
$this->_db->SQLRequest("SET NAMES utf8");
}
public function getAll()
{
if(isset($_POST['filter'])) :
$query = "SELECT * FROM portfolio WHERE category='".$_POST['filter']."' AND online = 1 ORDER BY category,pos ASC";
else :
$query = "SELECT * FROM portfolio WHERE online = 1 ORDER BY category,pos ASC";
endif;
return $this->_db->SQLRequest($query);
}
}
的mPortfolio.php页面实际上可以在类的外部读取$ _ POST [ '过滤器'],但公共函数getAll()不能。
你能帮我,请让它工作。 谢谢
您需要instanticate对象并调用该方法。本身的类定义什么都不做。 – Fracsi
您不是在代码中创建该类的实例,那么您如何期望该方法被执行......? – CBroe
** SQL注入**。在将它放入查询之前,请先转义'$ _POST ['filter']' –