2011-08-11 31 views
1

我正在网上商店工作,需要帮​​助才能获得iDeal插件(来自荷兰的付款方式)工作。需要将变量发送到函数的帮助PHP

我需要发送需要支付的项目金额(价格)。 我得到的项目从以前的页面这样

$qty = $_POST['qty']; 

的数量,使这样的总价格变量(2999是价格,它需要在美分左右的价格是29,99)

$totaalprijs = 2999 * $qty; 
$iAmount = $totaalprijs; 

访问者的动产他的银行,并通过按一个提交按钮 再发生这种情况

$oIdeal->setIdealAmount ($iAmount); 

这是发起付款在另一个php文件中将该变量发送给该函数,检查该值是否为非0的数字,并通过另一个函数将其发送到付款方式。

public function setIdealAmount ($intIdealAmount) { 

    # Is this a valid ideal amount? 
    if (is_numeric ($intIdealAmount) && $intIdealAmount > 0) { 
    $this->idealAmount = $intIdealAmount;  
    } 
    else { 
    throw new Exception('Invalid ideal amount, please check.'); 
    } 
    return $this; 

}

而现在的问题是,当其发送通过函数,它始终返回0 除非我举例来说做到这一点:

$iAmount = 2999; 

我想要的总价该项目是价格*数量,但它只返回$这当我声明我的$ iAmount变量像上面。

错误消息我得到的是这样的:

Fatal error: Uncaught exception 'Exception' with message 'Invalid ideal amount, please check.' in /home/spraytanning-express.nl/www/TargetPayIdeal.class.php:154 Stack trace: #0 /home/spraytanning-express.nl/www/betalen.php(116): TargetPayIdeal->setIdealAmount(0) #1 {main} thrown in /home/spraytanning-express.nl/www/TargetPayIdeal.class.php on line 154

希望一些你可以帮我... 顺便说一句,对不起,我的英语不好:)

在感谢提前!

+0

你是否100%肯定某件物品正在$ _POST ['qty']中设置?如果没有设置任何内容,则0将是可能导致此行为的默认值。 – Kyle

+0

是的,当我var_dump($ totaalprijs)它返回例如int(5998)当我有2个产品添加到我的购物车 – Micha

回答

0

,请尝试把你的支票,并明确地抛出异常此基础上检查失败:

public function setIdealAmount ($intIdealAmount) { 
    var_dump($intIdealAmount); // see what the value is 
    if (!is_numeric($intIdealAmount)) { 
      throw new Exception('ideal amount not numeric'); 
    } 
    if ($intIdealAmount <= 0) { 
     throw new Exception('ideal amount <= 0'); 
    } 
    etc... 
} 

现在您的例外是有点用的展示什么是错的,但是是没用的解释究竟为什么什么是错的。

+0

感谢您的回答! 但在我的问题,我allready声明,它返回为0 .. 我试过你的功能,它出来了消息 理想的数量<= 0 – Micha

+0

所以'var_dump($ _ POST ['qty'])'并确保你真的从你的表单中获得了某些东西,然后在操纵该值时复制该行。找出价值被清零的位置,并有你的错误。 –

+0

好吧,我试过了,它会返回0,当我发送它从 $ oIdeal-> setIdealAmount($ iAmount); (其下方的功能仍能工作,也是一个int()) 所以,当我从一个页面发送到setIdealAmount功能的另一页上,当它经过该函数返回0 .. 哪有我解决这个问题? 对不起,我真的很糟糕的PHP:$ – Micha

0

如果您尚未执行此操作,则可能需要在使用$ this->对象引用它之前初始化$ idealAmount变量。另外,您可能想要检查$ _POST ['qty']是否为数字。

+0

感谢您的回答! 变量$ totaalprijs返回为int当我转储变量.. 和问题不在$ idealAmount .. – Micha