在插入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; ,而不是价格。这是什么意思?如何使价格合适?
答案 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;
}
}