POST值从动态创建的单选按钮到mysql数据库

时间:2015-10-27 17:16:50

标签: php html mysql

我从数据库中获取了一些单选按钮。数据表就像 -

    id  title    name     option1  option2  option3   
------  -------  -------  -------  -------  ----------
     1  Wi-Fi    wifi     Yes      No       (NULL)    
     4  Parking  parking  Yes      No       Optional 

我有以下代码从数据库中获取数据。

$get_biz_meta_list = mysqli_query($connect, "SELECT * FROM biz_meta_list")
<form class="form-horizontal" action="add-biz-meta.php" role="form" method="post"  >
    <?php
    while($biz_meta_list = mysqli_fetch_array($get_biz_meta_list,MYSQL_ASSOC)){
        ?>
        <input type="hidden" name="mid" value="<?php echo $biz_meta_list['id'];?>" />
        <div class="form-group col-md-12">
            <label for="inputEmail1" class="col-md-3 control-label"><?php echo $biz_meta_list['title'];?></label>
            <div class="col-md-2">
                <input type="radio" name=meta[<?php echo $biz_meta_list['id'];?>] value="<?php echo $biz_meta_list['option1'];?>"/><?php echo $biz_meta_list['option1'];?>
            </div>
            <div class="col-md-2">
                <input type="radio" name=meta[<?php echo $biz_meta_list['id'];?>] value="<?php echo $biz_meta_list['option2'];?>"/><?php echo $biz_meta_list['option2'];?>
            </div>
            <?php 
            if($biz_meta_list['option3']!==null){
                ?>
            <div class="col-md-2">
                <input type="radio" name=meta[<?php echo $biz_meta_list['id'];?>] value="<?php echo $biz_meta_list['option3'];?>"/><?php echo $biz_meta_list['option3'];?>
            </div>
            <?php
            }
            ?>
        </div>
    <?php
    }
    ?>
        <div class="form-group">
            <div class="col-md-offset-5 col-md-6">
                        <input type="submit" class="btn btn-primary" value="Save" name="savemeta" /> 
            </div>
        </div>
</form>

然后提交后,它会将选定的字段发布到另一个表。这意味着如果我选择&#34; Yes&#34; for&#34; Wi-Fi&#34;那么&#34; Title&#34;和&#34; Option1&#34;将保存到数据库中。如果两个&#34; Wi-Fi&#34;和&#34; parking&#34;然后选择这两个值将存储在单独的行中。我试图抓住像这样的价值 -

if(isset($_POST['savemeta'])){

    foreach ($_POST['meta'] as $meta){
    $meta_name = get_meta_name($meta,$connect);

        echo $meta_name;
    }

}

$ get_meta_name是一个自定义函数,将重新标记标题。

但它在后回声中显示空白。请帮我。

1 个答案:

答案 0 :(得分:2)

您在单选按钮名称属性中遗漏了一些引号。 循环遍历$ _POST ['meta']时,会丢失索引,即您选项的ID。我不知道你的get_mena_name函数是做什么的,但我不知道它会如何返回'name',因为$ meta只包含'Yes'或'No'值。

更正单选按钮引号

name="meta[<?php echo $biz_meta_list['id'];?>]"

和你的php一样:

foreach ($_POST['meta'] as $id=>$value){
    //do your stuff with the ID and its value
    $meta_name = get_meta_name($id,$connect);
    echo $meta_name;
}