使用AJAX调用PHP函数 - 更新cookie

时间:2015-04-14 19:47:05

标签: php ajax cookies request

我目前正在尝试在网上商店更新我的Cookie。 当更新商店中特定产品的数量时,必须更新cookie并重新加载页面。

我正在尝试使用onchange JQuery事件执行此操作。 我将其编码如下:

$.ajax({
            type: 'POST',
            url: "./DAO/WinkelwagenDAO.php",
            data: {function: "UpdateAantal", productId: productId, Aantal: aantal},
            success: function (data) {
                console.log("Succeeded!", data);
                //location.reload(); //To reload page 

            },
            error: function (err) {
                console.log("Something went wrong in the AJAX-request: ", err);
            }
            });
        });

这样可以记录正确的事情。

现在,对于我的PHP文件,我抓住了这个事件:

if (isset($_POST['function'])) {
    $action = $_POST['function'];
    switch ($action) {
        case 'UpdateAantal' :
            echo "\nAmount to change for ProductId: " . $_POST['productId'] . " use function: " . $_POST['function'] . " set amount to: " . $_POST['Aantal'];
            WinkelwagenDAO::UpdateAantal($_POST['productId']);
    }
}

这里将调用UpdateAantal() - 函数,该函数在此php_file中定义。因此,我必须包含另一个PHP文件才能访问一些getter / setter。 (我认为这里也存在一个问题,因为当我include_once './Model/WinkelwagenItem.php';时,它会发出一个警告:找不到文件(尽管class/class/...是正确的)。当我做File_exists时它下面的代码说文件存在(这里有点卡住)

public static function UpdateAantal($productId) {
    if (file_exists('Model/WinkelwagenItem.php')) {
        //echo "\nFile that you wanted to import in winkelwagenDAO does exist!\n<br>";
        include_once 'Model/WinkelwagenItem.php';
    } else {
        //echo "File that you wanted to import in WinkelwagenDAO does NOT exist!";
    }

    echo "\nUpdateAantal function called";
    $Array = self::getWinkelwagenItems();

    echo $Array[0]->getProductId(); //HERE IT GOES WRONG

    if (isset($_COOKIE["winkelwagen"])) { //COOKIE EXISTS?
        $Array = self::getWinkelwagenItems();
        $index = 0; //positie bijhouden

        foreach ($Array as $product) {
            if ($productId == $Array[$index]->getProductId()) {
                //echo $productId . " == " . $Array[$index]->getProductId();

                $Array[$index]->setAantal($_POST['Aantal']);
                $SerializeArray = serialize($Array);
                setcookie("winkelwagen", $SerializeArray);

                break; //Quit if match
            } else {
                $index++;
            }
        }
    } else {
        echo "This cookie did not exist";
    }
}`

这是我在控制台中获得的内容(底部错误):

Console Logs from functions - Includes Error message

似乎无法调用->GetProductID(),因为include_once()可能做错了吗?但是,当我执行include_once时,它会发出警告:目录中没有这样的文件,我已经仔细检查了这个,文件确实存在。它说当我使用if(php中的File_exists)时它会出现。

Source/Model/WinkelwagenItem -> Getters and setters
Source/DAO/WinkelwagenDAO -> UpdateAantal function

任何人都可以帮助我吗?一整天都在尝试

0 个答案:

没有答案