我真的不想为insert创建一个文件而另一个文件用于select,所以,有一个属性或某些东西我不能用来区分我文件中的动作,这是我的jQuery:
$.ajax({
type: 'POST',
url: 'functions/actions.php', //Here is where i think i cannot difference actions
dataType: 'json',
data: serializedData
})
我通常只在PHP中设置这样的动作:
<form action="funciones/actions.php?do=newcall" method="post" enctype="multipart/form-data">
使用if
语句在PHP中处理它:
if(isset($_GET["do"]) && $_GET["do"]!=""){
$action = $_GET["do"];
if($action=="new"){
有一种类似的方法来处理像使用ajax的操作?或者某种方式不需要为select创建.php,为insert插入其他。
答案 0 :(得分:0)
您当然可以使用相同的php脚本来处理许多不同的操作 - 取决于方法和/或其他请求参数。作为一个例子,一些伪虚拟代码
<?php
/* functions/actions.php */
if( $_SERVER['REQUEST_METHOD']=='POST' ){
if( !empty( $_POST['action'] ) ){
switch( $_POST['action'] ){
case 'add-gerbil':$sql='insert gerbil into snake';break;
case 'del-gerbil':$sql='delete gerbil from snake';break;
}
$db->query($sql);
}
exit();
}
if( $_SERVER['REQUEST_METHOD']=='GET' ){
if( !empty( $_GET['action'] ) ){
switch( $_GET['action'] ){
case 'get-gerbil': $sql='select gerbil from snake';
case 'get-snake': $sql='select snake';
}
$db->query($sql);
}
exit();
}
?>
每个代码块都可以通过POST或GET进行定位,并且可以运行的单个任务由ajax调用中定义的任何参数(在本例中为action
)定义。
所以你可以做到
$.ajax({
type: 'POST',
url: 'functions/actions.php',
dataType: 'json',
data: {'action':'add-gerbil', 'name':'tito', 'color':'green' }
})
或
$.ajax({
type: 'GET',
url: 'functions/actions.php',
dataType: 'json',
data: {'action':'get-gerbil', 'name':'tito' }
})