使用switch case来调用php函数

时间:2013-12-20 16:39:12

标签: php function get switch-statement

我有一个将变量传递给GET的ajax调用,这很好,因为注释中的回声看起来很好,但是即使我已经将变量作为参数传递,addProduct函数中的回波也不会被回显。

 $func = $_GET ['func'];

    $name =  $_GET ['name'];
    $desc = $_GET ['desc'];
    $photo = $_GET ['photo'];
    $price = $_GET ['price'];
    $cat =  $_GET ['cat'];

//These work fine
    //echo "add";
    //echo $name;
    //echo $desc;
    //echo $photo;
    //echo $price;
    //echo $cat;

    switch ($func) {
        case "add"     :  addProduct($name, $desc, $photo, $price, $cat);
        break;
        case "edit"    :  editProduct();
        break;
        case "remove"  :  editProduct();
        break;
    };

    function addProduct($name, $desc, $photo, $price, $cat) {
        echo "add";
        echo $name;
        echo $desc;
        echo $photo;
        echo $price;
        echo $cat;

    }

4 个答案:

答案 0 :(得分:2)

通过阅读评论,我认为您忘记了网址中的&

而不是你可能拥有的东西:

myurl.com?func=addname=name&desc=desc&photo=photo

您需要使用:

myurl.com?func=add&name=name&desc=desc&photo=photo

答案 1 :(得分:1)

在我的AJAX调用中,这是一个愚蠢的错误。我曾两次写过一个变量。使用var_dump()有帮助! 谢谢你的帮助。

答案 2 :(得分:0)

您的switch语句未正确输入正确的case,因此您的addProduct方法永远不会被调用。

您需要确保$func == 'add',以便它进入add案例并调用该方法。

答案 3 :(得分:0)

我已经测试了你的代码。如果$ func ='add',它会按预期打印。检查$ _GET ['func']。