如何使用Ajax在同一个PHP文件中进行插入和选择

时间:2018-01-17 16:08:31

标签: php jquery mysql ajax

我真的不想为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插入其他。

1 个答案:

答案 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' }
})