如何在后台处理AJAX请求中过多的$_POST变量条件?

时间:2021-08-11 作者:Sahasrar

在工作中,我们编写了一个PHP应用程序。我只是一名大三学生,但我对处理AJAX调用的问题感到不满。每个AJAX请求都指向单个appdata。php脚本。在appdata。php是这种结构的15k行$_POST[\'variable\']”;“变量”;每次都不一样

if(isset($_POST[\'variable_1\'])){
            // redirect to handling function       
            $returnArray[\'return\'] = $model->DoSomeStuffWithVariable_1();
            // returnArray returns data after dosomething at backend
        }
if(isset($_POST[\'variable_2\'])){
            // redirect to handling function       
            $returnArray[\'return\'] = $model->DoSomeStuffWithVariable_2();
            // returnArray returns data after dosomething at backend
        }
if(isset($_POST[\'variable_3\'])){
            // redirect to handling function       
            $returnArray[\'return\'] = $model->DoSomeStuffWithVariable_3();
            // returnArray returns data after dosomething at backend
        }
if(isset($_POST[\'variable_xy\'])){
            // redirect to handling function       
            $returnArray[\'return\'] = $model->DoSomeStuffWithVariable_xy();
            // returnArray returns data after dosomething at backend
        }
我想问一下如何才能做得更好。以及它是如何在专业的范围内完成的,就像在商业网站上一样,在商业网站上,使用数百个变量进行的AJAX调用要多出数百倍。。。

1 个回复
SO网友:Buttered_Toast

首先,我要创建一个包含all的数组;“条件”;逻辑,循环,检查是否满足某些条件并返回值。

$conditions = [
    \'variable_1\'  => \'DoSomeStuffWithVariable_1\',
    \'variable_1\'  => \'DoSomeStuffWithVariable_1\',
    \'variable_1\'  => \'DoSomeStuffWithVariable_1\',
    \'variable_xy\' => \'DoSomeStuffWithVariable_xy\'
];

foreach ($conditions as $condition_key => $condition_value) {
    if (isset($_POST[$condition_key])) {
        $returnArray[\'return\'] = $model->$condition_value();
        break;
    }
}
现在你可能会问为什么$conditions 我只使用了方法名,而没有调用该方法,因此它已经包含了该值。

原因是为了节省资源,我不知道你有多少个检查,也许你有几百个,所以我们不是每次都调用所有的一百个方法,而是只在isset 检查通行证。

一旦我们找到一个有效的条件,检查也会停止,以便不再使用任何资源,因为我们只需要一个。