【发布时间】:2018-05-15 23:37:41
【问题描述】:
我有一个低效构造的表单,显然每个 SELECT 元素发送一种类型的数据。为简单起见,这里举个例子。
表单从 2 个 SELECT 元素发布数据,但它实际上需要包含 3 条数据。对用户而言,SELECTs do 包含 3 条数据;一个 SELECT 表示数量,另一个 SELECT 表示项目名称和价格,使用 OPTION 标签之间的文本。
所以,表单只发送 $quantity 和 $itemname
在处理过程中,我正在尝试构建一组 IF 或一个 SWITCH 来提供缺失的价格。由于与 $itemname 关联的字符串是唯一的,因此我正在尝试制作一个提供价格的“密钥”。我的逻辑是,如果 $itemname 包含“One Inch Nut”,我可以通过以下方式找到 $price:
if ($itemname = "Once Inch Nut;") { $price = .25; }
如果 $itemname 是别的东西,我会在 switch 中添加另一个 IF 或 IF else 或 CASE。
事实上,我就是这样做的,但是当我从 SELECT 中选择另一个 OPTION 时,$price 甚至 $item 名称都被定义为我的“IF”堆栈中的最后一个“IF”
因此,如果我要选择 20 项 SELECT 分组中的第 3 项,那么当我需要使用变量(添加、回显等)时,我最终会以“IF堆栈”
很明显,我对IE ELSEIF ELSE的逻辑和理解是有缺陷的。
关于如何从变量的字符串数据中生成这个“键”的想法?
谢谢, 抢
以下是我认为会起作用的简略示例:
假设表单为 $itemname 发布“cat”,为 $qty 发布“3”
<?
$itemname = $_POST['specificitem'] ;
$qty = $_POST['quantity'] ;
if ($itemname = "cat;") { $price = 2.25; }
if ($itemname = "dog;") { $price = 1.25; }
if ($itemname = "hamster;") { $price = 3.25; }
if ($itemname = "parakeet;") { $price = 7.25; }
if ($itemname = "werewolf;") { $price = 122.25; }
echo $itemname;
echo "$"$price;
?>
应该收益:cat $2.25 ????
【问题讨论】:
-
sting data 是什么样的数据?像“Roxanne”之类的?