在单个PHP文件上处理多个ajax

时间:2013-10-22 10:13:02

标签: javascript php ajax

我有一个js开关声明,用于检查提交的文本中是否存在特定字符串。

var textA= //regex
var textB= //regex

switch(true) {
  case textA.test(input):
    // CASE A
      $ajax ({
        type:"post",
        url:"process.php",
        data: {input:input,age:age,city:city,type:type},
        success: function(html){alert(html);} });
      break;
  case textB.test(input):
    // CASE B
      $ajax ({
        type:"post",
        url:"process.php",
        data: {input:input,width:width,height:height,type:type},
        success: function(html){alert(html);} });
      break;
 case ...
 }

通常,我会创建专用的php文件来处理每个$ajax的POST数据。

但如何在单个$ajax中处理多个php POST。

我为每个ajax数据添加了一个唯一标识符type:,这将是我对我的PHP接收ajax的参考

但我不确定如何正确编写PHP来处理提交的$ _POST类型。

<?php
      //get post type from submitted AJAX
      $type = $_POST;

      switch($type) {
        case 0:
          $type= "caseA"
          //some code here
        case 1:
          $type= "caseB"
          // some code here
      }
 ?>

2 个答案:

答案 0 :(得分:2)

每个案例发送一个动作,

e.g。

$.ajax({
   url: 'path/to/file.php',
   type: 'POST / GET',
   data: {action: 1, data:myObject}
});

每个案例,发送不同的操作,然后在PHP中使用$_POST / $_GET['action']

检查

所以你可以做switch陈述

e.g。

switch($_POST / $_GET['action']) {
   case 1:
       //do something
       break;
}

答案 1 :(得分:1)

你可以这样做:

switch(true) {
  case textA.test(input):
    // CASE A
      $ajax ({
        type:"post",
        url:"process.php",
        data: {input:input,age:age,city:city,type:"typeA"},
        success: function(html){alert(html);} });
      break;
  case textB.test(input):
    // CASE B
      $ajax ({
        type:"post",
        url:"process.php",
        data: {input:input,width:width,height:height,type:"typeB"},
        success: function(html){alert(html);} });
      break;
 case ...
 }

然后在PHP中:

<?php

  switch($_POST['type']) { // or $_REQUEST['type']
    case 'typeA':
      // Type A handling code here
      break;
    case 'typeB':
      // Type B handling code here
      break;
  }