将radiobutton中的两个变量插入数据库

时间:2014-12-27 23:31:42

标签: php pdo

在插入radiobutton的三个数据之前,我必须从数据库中显示一些数据。三个radiobuttons和其他显示数据是相同的位置(在一种形式),如下:

    <?php
    $fetchdata = $db->prepare("SELECT * FROM input_voucher ORDER BY id");
    $fetchdata->execute();
    $getAllz = $fetchdata->fetchAll();
    foreach ($getAllz as $rowz) {
      $ch1=$rowz['price1'];
      $ch2=$rowz['price2'];
      $ch3=$rowz['price3'];
    ?>

<form action="" method="post" name="form">
    <input name="var" id="voucher1" type="radio" value="1 Month">1 Month
    <span>USD.<input type="text" name="txtprice1" id="txtprice1" value="<?php echo $ch1; ?>" readonly="readonly"></span>

    <br />

    <input name="var" id="voucher2" type="radio" value="2 Month">2 Month
    <span>USD.<input type="text" name="txtprice2" id="txtprice2" value="<?php echo $ch2; ?>" readonly="readonly"></span>

    <br />

    <input name="var" id="voucher3" type="radio" value="3 Month">3 Month
    <span>USD.<input type="text" name="txtprice3" id="txtprice3" value="<?php echo $ch3; ?>" readonly="readonly"></span>

    <br />
    <input type="submit" class="btn btn-primary" name="btnsubmit" id="btnsubmit" value="Contiue">
    </form>

    <?php
    }
    ?>

然后,用户必须从树radiobuttons中选择ONE CHOICE。当用户检查其中一个按钮时,意味着用户也选择价格类型(price1,price2或price3)。 选择的结果将被插入到数据库中,如下所示:

更新:

if (isset($_POST['btnsubmit'])){
   $var= strip_tags($_POST['var']);
   if ($var=='1 Month'){
      $numprice=strip_tags(isset($_POST['txtprice1']));
      }
   elseif ($var=='2 Month'){
      $numprice=strip_tags(isset($_POST['txtprice2']));
      }
   elseif ($var=='3 Month'){
      $numprice=strip_tags(isset($_POST['txtprice3']));
      }
      //insert now
      $mydata = $db->prepare("INSERT INTO voucher (colmonth,price) VALUES (:var,:numprice)");
      $mydata->execute(array(':var'=>$var,':numprice'=>numprice));
      echo "successfully saved!";
      header('location:setup.php');
      exit();
   }

但它保存了&#34; 1&#34; ,而不是价格。这是什么意思?如何使价格合适?

2 个答案:

答案 0 :(得分:1)

请定义您遇到的问题:出现了哪些错误?脚本的任何意外行为? 无论如何,同一组的afaik单选按钮必须具有相同的名称属性,因此所有3个单选按钮的名称都是name="var"。此外,$_POST['var'] ==接受单选按钮的value=""属性。

至于保存价格,您可以为每个单选按钮应用不同的值并将该值放入db

UPD。关于你的评论 让我们说你的3个单选按钮包含以下内容:

<input name="var" type="radio" value="0" />1 Month
<input name="var" type="radio" value="1" />2 Month
<input name="var" type="radio" value="2" />3 Month

在PHP脚本中创建以下数组:

$subscription = array('1 Month', '2 Month', '3 Month');
$price = array($ch1, $ch2, $ch3);
$id = $_POST['var'];                        #if we selected 1 month, value will be '0'
echo $subscription($id).' for '$price($id); #prints '1 Month for 10$'

答案 1 :(得分:1)

终于我找到了答案!对于$_POST,我尚未宣布 txtprice1,2 and 3。这是决赛:

$txtprice1 = strip_tags(isset($_POST['txtprice1'])) ? strip_tags($_POST['txtprice1']) : '';
$txtprice1=strip_tags($txtprice1);
$txtprice2 = strip_tags(isset($_POST['txtprice2'])) ? strip_tags($_POST['txtprice2']) : '';
$txtprice2=strip_tags($txtprice2);
$txtprice3 = strip_tags(isset($_POST['txtprice3'])) ? strip_tags($_POST['txtprice3']) : '';
$txtprice3=strip_tags($txtprice3);
$var = strip_tags($_POST['var']);
if ($var=='1 Month'){
    if (isset($_POST['txtprice1'])){
        $numprice=$txtprice1;
        }
    }
elseif ($var=='2 Month'){
    if (isset($_POST['txtprice2'])){
        $numprice=$txtprice2;
    }
}
elseif ($var=='3 Month'){
    if (isset($_POST['txtprice3'])){
        $numprice=$txtprice3;
    }
}