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
相关产品推荐
相关产品推荐

