这是我的按钮:
<form>
<input type="hidden" id="id" value="'.$row['order_id'].'">
<input type="button" value="Delete" onclick="ajaxFunction()">
</form>
这是ajax函数:
<script language="javascript" type="text/javascript">
<!--
//Browser Support Code
function ajaxFunction(){
var ajaxRequest; // The variable that makes Ajax possible!
try{
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
} catch (e){
// Internet Explorer Browsers
try{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
}
}
var id = document.getElementById(\'id\').value;
var queryString = "?id=" + id;
ajaxRequest.open("GET", "classes/ajaxed/reservation_functions.php" + queryString, true);
ajaxRequest.send(null);
}
//-->
</script>
这里是处理这个名为 reservation_functions.php 的函数的 php 文件:
<?php
$id = $_GET['id'];
require_once '../class.db.php';
require_once '../../includes/constants.php';
$db = new MySQL(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME, false);
$db->query("DELETE FROM orders WHERE order_id = $id;") or die(mysql_error());
echo 'DONE!';
?>
我非常擅长 PHP,但我离 AJAX 还很远,所以我的问题是如何使用 ajax 处理不同的参数,更清楚地说: 我想添加删除功能、打印功能、编辑功能,但我想制作一个 php 文件来处理所有功能以及 AJAX 附带的那些功能。
我想出点子有点困难,因为我离 AJAX 真的很远,
感谢您的宝贵时间和帮助。
最佳答案
你可以做到:
类:
class AjaxActions {
private static $instance;
private function __construct () {}
public static class getInstance() {
if (!self::$instance) self:$instance = new self();
return self::$instance;
}
private function makeReturn ($action, $data) {
return json_encode(array(
'action' => (string) $action,
'time' => time(),
'result' => $data
));
}
public function delete ($request) {
$db = new MySQL(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME, false);
$id = (int) $request['id'];
$db->query("DELETE FROM orders WHERE order_id = $id;");
if (!$db->errn) {
$error = 0;
$emsg = "";
} else {
$error = $db->errn;
$emsg = $db->error;
}
return $this->makeReturn('delete', array(
'error' => $error,
'errorMessage' => $emsg
));
}
// Other actions here..
}
还有……
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
if ($action) {
$oAjaxCommand = AjaxActions::getInstace();
if (method_exists($oAjaxCommand,$action) {
$response = call_user_func (array($oAjaxCommand,$action),$_REQUEST);
echo $response;
exit(0);
} else {
thrown new Exception("Action not exists");
}
}
从 de javascript 端,您可以使用响应返回一个 json 对象。我推荐使用像 mootools 这样的 JS 框架。或 jquery .这个框架使 ajax 工作变得非常容易,而且是跨浏览器的。
关于php - 如何在php类中使用ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6085578/