You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP技术实现:如何关联表单输入与家具数组计算总价

家具总价计算程序开发问题

这是一项校园编程实践任务:为搬家的Penelope开发一个家具总价计算程序,要求如下:

  • 支持输入最多5件家具及对应数量
  • 展示所选家具、数量、单价及总价
  • 无法修改给定的HTML表单

目前已完成的工作:

  • 将包含家具名称与价格的文本文件转换为数组
  • 实现了输入验证与数据获取功能

待解决的问题:

  • 无法将表单输入的家具项与数组中对应价格关联
  • 无法结合数量计算总价

以下是完整代码:

<!-- //Furniture Calculator PHP | Version 1.1 | Sara WU//  -->
<!DOCTYPE html>
<html>
<body>

<?php
$filename = "Furniture.txt";
$arrFurn = array();
$fp = fopen($filename, "r");

if(filesize($filename) > 0){
    $content = fread($fp, filesize($filename));
    $arrFurn = explode("\n", $content);
    fclose($fp);
}

//Function for checking the validation of the string//
    function validString($var){
    $return = 'Return to <a href="FurnitureCalculator.html">Return to Form</a><br>';

//Checking if variable exists in array//
      if (!in_array($var, $arrFurn)) {
            echo $return;
            exit("Your input does not exist in the text file.");
        }

//Checking if variable exists//
      if(empty($var)){
            echo $return; 
            exit("Input does not exist. Please resubmit form.");
        }
//Checking if variable is numerical//
      if (is_numeric($var)){
            echo $return; 
            exit("Invalid input. Value is not a string.");
       }
//Checking if any special characters are present//
      if (preg_match('/[1234567890\'^£$!%&*()}{@#~?><>|=_+¬-]/', $var)){
            echo $return; 
            exit("Invalid characters. Please resubmit form.<br>.");
       }
            return $var;

    }
    // echo validString('poop!'); PASSED


//Validation for checking integers//
     function validInt($var, $min = 1, $max = 99 ){
     $return = 'Return to <a href="FurnitureCalculator.html">Return to form</a><br>';
//Checking if variable exists//
      if(empty($var)){
            echo $return; 
            exit("Input does not exist. Please resubmit form.");
        }
//Checking if value is NOT numerical//
  if(!is_numeric($var)){
            echo $return; 
            exit("Invalid input. Variable must be numeric");
        }
//Checking if any special characters are present//
      if (preg_match('/[\'^£$%&*(!)}{@#~?><>,|=_+¬-]/', $var)){
            echo $return; 
            exit("Invalid characters. Please resubmit form.<br>.");
       }
//Checking if variable fits within required range//
       if($var < $min || $var > $max){
            echo $return; 
            exit("Value exceeds limit.");
        }
       return $var;
     }

     // echo validInt(-7,1,99); PASSED


//Retrieves variables from html form//
    
     $quan1 = validInt($_GET['quan1']);
     $quan2 = validInt($_GET['quan2']);
     $quan3 = validInt($_GET['quan3']);
     $quan4 = validInt($_GET['quan4']);
     $quan5 = validInt($_GET['quan5']);
     $furn1 = validString($_GET['furn1']);
     $furn2 = validString($_GET['furn2']);
     $furn3 = validString($_GET['furn3']);
     $furn4 = validString($_GET['furn4']);
     $furn5 = validString($_GET['furn5']);
//prints out the furniture the user have inputted// 
     print "This is the following furniture you have ordered: <br>";
     print('1.'. $furn1 . '<br>'.'2.'. $furn2 .'<br>'.'3.'. $furn3 .'<br>'.'4.'. $furn4 .'<br>'.'5.'. $furn5 .'<br>');

//prints out the quantity that the user have ordered//
     print "This is the following quantity you have ordered: <br>";
     print($furn1 .":". $quan1 .'<br>' . $furn2 .":". $quan2 .'<br>' . $furn3 .":". $quan3 .'<br>' . $furn4 .":". $quan4 .'<br>'. $furn5 .":". $quan5 .'<br>');


//calculating total price


//prints out the total price//
     print("The total price of your order is ;")




?>

</body>
</html>

内容的提问来源于stack exchange,提问作者Sara Wu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 12:57:42