Hướng dẫn how to add quantity in php - cách thêm số lượng trong php

Tôi đang cố gắng tạo một bản tóm tắt đặt hàng nhà hàng trong đó khách hàng có thể chọn đơn đặt hàng của mình thông qua hộp kiểm và số lượng và nhận được số tiền giá vào cuối. Khi chọn gà, nó hoạt động hoàn hảo: bạn đã chọn 3 con gà và trả lại giá chính xác, nhưng khi tôi kiểm tra một cái khác và chọn số lượng khác, đó là cho 0 lựa chọn hoặc cho 1 số lượng ngay cả khi tôi đặt 5 ví dụ. Chỉ có gà làm việc khác không.

Xem mã và ảnh chụp màn hình của tôi với đầu ra.

Hướng dẫn how to add quantity in php - cách thêm số lượng trong php

Đây là mã của tôi:


Select what you want to eat

Chicken,Price:8
Meat,Price:3
Souvlaki,Price:2.50
Pizza,Price:12

và PHP:

";
    }

    if ($food[$i] == 2){
        $price = $price + 3 * $quantity[$i];
        echo "You have selected" .$quantity[$i]." Meat 
"; } if ($food[$i] == 3){ $price = $price + 2.5 * $quantity[$i]; echo "You have selected " .$quantity[$i]."Souvlaki
"; } if ($food[$i] == 4){ $price = $price + 12 * $quantity[$i]; echo "You have selected" .$quantity[$i]." Pizza
"; } } echo "Total: ".$price . "
"; } else { echo "Please select something!"; } ?>

Khi được hỏi ngày 14 tháng 5 năm 2016 lúc 12:52May 14, 2016 at 12:52

0

Vấn đề là các hộp kiểm không được kiểm tra không được gửi đến PHP, vì vậy mã của bạn sẽ không hoạt động theo cách bạn có ở đó. Bạn cần bao gồm nhiều thông tin hơn về từng mục trong biểu mẫu của bạn để làm việc dễ dàng hơn với dữ liệu ở phía PHP, cộng với cách này bạn không phải lặp lại khi hiển thị tên mục. Hãy thử một cái gì đó như thế này:

 0 )
        {
            $items[] = $quantity .' '. $name;
            $total  += $price * $quantity;
        }
    }
    // update info if items were selected
    if( count( $items ) )
    {
        $info = 'You selected ('.implode( ', ', $items ).'), total: '.$total;
    }
}
?>



    Order Form
    



    
Chicken, Price: 8
Meat, Price: 3
Souvlaki, Price: 2.50
Pizza, Price: 12

Đã trả lời ngày 14 tháng 5 năm 2016 lúc 21:01May 14, 2016 at 21:01

RainnerrainnerRainner

5893 Huy hiệu bạc7 Huy hiệu Đồng3 silver badges7 bronze badges

Thay vì

$price = $price + 3 * $quantity[$i];

Nó là

$price = $price + 8 * $quantity[$food[$i]-1];

BTW, bạn cần thay đổi giá trị trong 'thực phẩm' thành số, đó là một chuỗi khi bạn nhận được nó từ biểu mẫu.

if(isset($_GET["choice"])){
$food=$_GET["choice"];
$quantity=$_GET["quantity"];
// begin type-cast
// without the '&',this code won't modify a array element directly
// We could iterate the array normally(without '&') and push the value to a new array,
// But that may change the order of the $quantity, I am not sure, so I'd better reference the element directly.   
foreach ($food as &$value) {
//(int) change it to a number.
    $value = (int)$value;
}
foreach ($quantity as &$value) {
    $value = (int)$value;
}
// type-cast done
$c = count($food);
$price = 0.0;


for ($i=0; $i<$c ; $i++){
if ($food[$i] == 1){
    $price = $price + 8 * $quantity[$food[$i]-1];
    echo "You have selected " .$quantity[$food[$i]-1]." Chicken 
"; } if ($food[$i] == 2){ $price = $price + 3 * $quantity[$food[$i]-1]; echo "You have selected " .$quantity[$food[$i]-1]." Meat
"; } if ($food[$i] == 3){ $price = $price + 2.5 * $quantity[$food[$i]-1]; echo "You have selected " .$quantity[$food[$i]-1]." Souvlaki
"; } if ($food[$i] == 4){ $price = $price + 12 * $quantity[$food[$i]-1]; echo "You have selected " .$quantity[$food[$i]-1]." Pizza
"; } } echo "Total: ".$price . "
"; } else { echo "Please select something!"; } ?>

Html // bạn có một lỗi đánh máy ở đây gà, giá: 8

Meat,Price:3

Souvlaki,Price:2.50
Pizza,Price:12

Đã trả lời ngày 14 tháng 5 năm 2016 lúc 18:58May 14, 2016 at 18:58

sfysfysfy

2.40217 Huy hiệu bạc20 Huy hiệu đồng17 silver badges20 bronze badges

Độ dài của mảng thực phẩm và mảng số lượng không phải lúc nào cũng giống nhau.

Example:

Mảng thực phẩm (var_dump)

array(2) { [0]=> string(1) "2" [1]=> string(1) "3" } 

Mảng số lượng cũng có các giá trị trống (var_dump)

array(4) { [0]=> string(0) "" [1]=> string(1) "4" [2]=> string(1) "5" [3]=> string(0) "" }

Điều này làm việc cho tôi:

if ($food[$i] == 1){
    $price = $price + 8 * $quantity[0];
    echo "You have selected " .$quantity[0]." Chicken 
"; continue; } if ($food[$i] == 2){ $price = $price + 3 * $quantity[1]; echo "You have selected" .$quantity[1]." Meat
"; } if ($food[$i] == 3){ $price = $price + 2.5 * $quantity[2]; echo "You have selected " .$quantity[2]."Souvlaki
"; } if ($food[$i] == 4){ $price = $price + 12 * $quantity[3]; echo "You have selected" .$quantity[3]." Pizza
"; }

Hy vọng nó phù hợp với bạn, hãy sửa cho tôi nếu tôi sai!

Hướng dẫn how to add quantity in php - cách thêm số lượng trong php

Đã trả lời ngày 14 tháng 5 năm 2016 lúc 14:24May 14, 2016 at 14:24

Hướng dẫn how to add quantity in php - cách thêm số lượng trong php

2