2012-07-21 56 views
1

在这段代码中,它应该改变数量,但不会改变。它始终将值设置为'1'。PHP默认文本输入字段的值

<?php 
if(isset($_POST["quantity"])) 
    $quantity = settype($_POST["quantity"], "integer"); 
else 
    $quantity = 1; 

$item_price = 5.99; 
printf("%d x item = $%.2f", 
     $quantity, $quantity * $item_price); 
?> 
<FORM ACTION="buy.php" METHOD=POST> 
Update quantity: 
<INPUT NAME="quantity" SIZE=2 
VALUE="<?php echo $quantity;?>"> 
<INPUT TYPE=SUBMIT VALUE="Change quantity"> 
</FORM> 
</body> 
</html> 

回答

2

settype用来设置变量的类型,则返回bool值指示成功或失败。您需要$_POST值赋给$quantity(带式铸造),试试这个:

if(isset($_POST["quantity"])) { 
    $quantity = (int)$_POST["quantity"]; 
} else { 
    $quantity = 1; 
} 

// or 
$quantity = isset($_POST["quantity"]) ? (int)$_POST["quantity"] : 1; 
0

尝试用

if(isset($_POST["quantity"])) 
     $quantity = intval($_POST["quantity"]);