请教下如何给checkbox赋数值,现在只能显示选中复选框的字符串 将字符串发送数据库里,我想给每个checkbox再赋具体的价钱,最后显示出选的总价,传递到数据库里。问下哪位大侠会啊?(譬如面条=10元,饺子=20元,我选择面条和饺子复选框后,传递总数值30元到数据库表里。)
//dingdan.php
<form name="form1" method="post" action="result.php">
<table width="680" cellpadding="0" cellspacing="0">
<tr>
<td width="678" height="157" align="center" valign="top">
          <p>您选择的订餐:
            <input type="checkbox" name="food[]" value="宫爆鸡丁盖饭">
            宫爆鸡丁盖饭
            <input type="checkbox" name="food[]" value="面条" />
            面条
            <input type="checkbox" name="food[]" value="饺子" />
            饺子       </p>
            <p>
            <input type="checkbox" name="food[]" value="KFC汉堡" />
            KFC汉堡
            <input type="checkbox" name="food[]" value="KFC鸡翅" />
            KFC鸡翅
            <input type="checkbox" name="food[]" value="麦当劳汉堡" />
            麦当劳汉堡
            <input type="checkbox" name="food[]" value="麦当劳鸡" />
            麦当劳鸡翅 <br>
            <input type="submit" name="submit" value="购买" />
            <a href="check_add_food.php">查看
          </a></p></td>
    </tr>
  </table>
</form>//result.php
<?php
if(($_POST[food]!=null)){
echo "您选的订餐是:";
for($i=0;$i<count($_POST[food]);$i++)
echo $_POST[food][$i]."&nbsp;&nbsp;";
} $conn=mysql_connect("localhost","root","root")or die("数据库服务器链接错误".mysql_error());
mysql_select_db("restaurant",$conn)or die("数据库访问错误".mysql_error());
mysql_query("set names utf8");
    session_start();
$user=$_SESSION["user"];
    $food=$_POST['food'];
$datetime = date("Y-m-d H:i:s");
$sql=mysql_query("insert into form1(content)VALUES(".implode('".implode(",",$food)."')");
echo"<script>alert('公告信息添加成功!');history.back();</script>";?>

解决方案 »

  1.   

    可以这么写
     <input type="checkbox" name="food[]" value="10" /> 
                面条 
     <input type="checkbox" name="food[]" value="20" /> 
                饺子
    这样你传进数据库的就是10和20 了
      

  2.   

    楼上正解,如果你非得要
    <input type="checkbox" name="food[]" value="面条" /> 面条 
    <input type="checkbox" name="food[]" value="饺子" /> 饺子 那下面你就需要进行判断.
    if(food[$i]==面条)
    {
      $jiage1=10;
    }
    if(food[$i]==饺子)
    {
      $jiage2=20;
    }
      

  3.   

    谢谢楼上 我知道意思 可传入只是10和20的字符串,我想将10和20的总和30 传到数据库里 不是单个的10和20传。该怎么写哈。'".implode(",",$food)."' 函数 传入的只是(10,20)的字符串
      

  4.   

    真不知道怎么回答你了。
    $1=10
    $2=20$value=$1+$2;将$value存在库中
      

  5.   

    谢谢楼上了 这个我知道 可是复选框选择2个怎么求和啊 例如同时选择 第一个复选框和第二个复选框,或者随便选择其他几个复选框求总值。
    我设置$_POST[food][$i]的话 无法显示选择每组的值(不知道我写的对不),所以只能$_POST[food][0] 单选的话可以显示其中一个,多选不能计算总值,可有FOR循环什么方法么 
     $sum=0;
     $jiage1=8;
     $jiage2=10;
     $jiage3=15;
    if($_POST[food][0]=="宫爆鸡丁盖饭")
     {
     $sum+=$jiage1;
     echo $jiage1;
    }
    if($_POST[food][0]=="面条")
     {
     $sum+=$jiage2;
     echo $sum;
    }
    //这样只能单列出每个的价格
      

  6.   

    如果你選了就會提交,不選就不提交的
    $count=count($_POST[food]);
    $amount=0;
    for ($i=0;$i<$count;$i++)
    {
       $amount+=$_POST[food][$i];
    }
    $sql="insert into food(amount) values('".$amount."')";
    mysql_query($sql);
      

  7.   

    楼上聪明!!!谢谢tfxg了这个正是我要的,谢谢各位朋友们!!
      

  8.   

    最后我发下我修改的代码:按照tfxg和 iwantnet思路,一切OK了!!谢谢tfxg和 iwantnet!呵呵开心中!
    <?
     $sum=0;
     $jiage1=8;
     $jiage2=10;
     $jiage3=15;
    $count=count($_POST[food]); 
    for ($i=0;$i <$count;$i++) 
    { if($_POST[food][$i]=="宫爆鸡丁盖饭")
     {
     $sum+=$jiage1;
    }
    if($_POST[food][$i]=="面条")
     {
     $sum+=$jiage2;
    }
    if($_POST[food][$i]=="饺子")
     {
     $sum+=$jiage3;
    }
      $sum+=$_POST[food][$i]; 
    echo "<br>";
    echo $sum;

    ?>