首页
学习
活动
专区
圈层
工具
发布

多选PHP
EN

Stack Overflow用户
提问于 2013-06-03 03:05:06
回答 4查看 10.6K关注 0票数 0
代码语言:javascript
复制
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
    <option value="four">four</option>
    <option value="five">five</option>
</select>
<input type="submit" value="Send" />
</form>
<?php

    $test=$_POST['test'];
    if ($test){
     foreach ($test as $t){echo 'You selected ',$t,'<br />';}
    }
if($t=='one')
   $price1=12;
if($t=='two')
   $price2=2;
$total = $price1 + $price2;

echo $total;

当一和二都被选中时,我希望结果是14。做一个加法得到14的最好方法是什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-03 03:09:11

您必须将if $t = one等放入循环中

票数 0
EN

Stack Overflow用户

发布于 2013-06-03 03:13:40

你应该创建一个包含结果的变量,而不是创建price1、price2等。

例如:

代码语言:javascript
复制
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="test[]" multiple="multiple">
    <option value="one">one</option>
    <option value="two">two</option>
    <option value="three">three</option>
    <option value="four">four</option>
    <option value="five">five</option>
</select>
<input type="submit" value="Send" />
</form>

<?php

    $test = isset($_POST['test']) ? $_POST['test'] : null; // we also want to check if it's set else we'll get an notice
    $total = 0;

    if ($test) {
        foreach ($test as $t) {
            echo 'You selected ',$t,'<br />';

            switch ($t) {
                case "one" : $total += 2; break;
                case "two" : $total += 12; break;
            }
        }
    }

    echo 'Total: ' .$total;
票数 4
EN

Stack Overflow用户

发布于 2013-06-03 03:08:58

将IF放入foreach循环中

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16886240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档