Dynamic html form values ​​are not stored in the database

I am developing a game portal in which a professor should be able to add any questions to the game. I created functions like question (multiple choice or descriptive) in form.php and I call them in my main file. First of all, in the loop, I call the main unit (a simple html window) in which I must add a question. And his work is beautiful. Now I have to store dynamically changed field values ​​in the database. But I do not know where I am mistaken. Below is my form.php in which I create the forms to call in the main file.

    <?
    $i=$_post['i'];
    $_SESSION["input_type"][$i]= $_POST["type"];
    if($_SESSION["input_type"][$i]==1)
    {
    form($i);
    }
    elseif($_SESSION["input_type"][$i]==2)
    {
    form1();
    }

    function form($i)
    {

    ?>

    <div class="control-group">
    <div class="controls">
    <textarea class="large m-wrap"   placeholder=" Statement " cols="50"rows="3" name="statement<?echo $i;?>"  style="text-align:center;" id="statement<?echo $i;?>"></textarea>
    </div>
    </div>
    <div class="name">
    <input name="option<?echo $i.'1';?>" id="option<?echo $i.'1';?>"   placeholder="Option 1" style="width:170px;" type="text"/>

    <input name="option<?echo $i.'2';?>" id="option<?echo $i.'2';?>"    type="text" style="width:170px;" placeholder="Option 2"/>

    <input name="option<?echo $i.'3';?>" id="option<?echo $i.'3';?>"  type="text" style="width:170px;" placeholder="Option 3"/>

    <input name="option<?echo $i.'4';?>" id="option<?echo $i.'4';?>" type="text" style="width:170px;" placeholder="Option 4"/>

    </div>
    <div class="control-group">
    <div class="controls">
    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
    <label class="radio">
    <input type="radio" name="option<?echo $i.'1';?>_default" id="option<?echo $i.'1';?>_default" />
    Option 1
    </label>
    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
    <label class="radio">
    <input type="radio" name="option<?echo $i.'2';?>_default" id="option<?echo $i.'2';?>_default" checked />
    Option 2
    </label>  
    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
    <label class="radio">
    <input type="radio" name="option<?echo $i.'3';?>_default" id="option<?echo $i.'3'?>_default" />
    Option 3
    </label> 
    &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp &nbsp
    <label class="radio">
    <input type="radio" name="option<?echo $i.'4';?>_default" id="option<?echo $i.'4';?>_default" />
    Option 4
    </label>
    </div>
    </div>

    <?php
    }
    //end
    ?>

   <?php
   function form1()
   { ?>

   <div class="control-group" id ="field" name="field">
   <label class="control-  label">Answer</label>
   <div class="controls">
   <input type="text" placeholder="Answer" id ="ans" name="ans" class="m-wrap small" />
                               </div>
                            </div>
        <?
      }
    ?>

This is my main file where I write form.php functions to add questions

            <!-- BEGIN PAGE -->
     <div class="page-content">
     <form action="storeGame.php" method="POST">
     <div class="control-group">

      <label class="control-label">Game Name</label>
      <div class="controls">
      <input type="text" id="game_name" name="game_name" placeholder="Enter Game Name" class="m-wrap large" />
      </div>
      </div>        

     <!-- BEGIN BORDERED TABLE PORTLET-->

     <?
        $q_no=5;
        for ($i=0;$i<$_SESSION["q_inc"]; $i++)
        {
        ?>
       <div class="portlet box yellow">
                    <div class="portlet-title">
                        <h4><i class="icon-coffee"></i>#<?echo $i+1;?>         </h4>
                        <div class="tools">
                            <a href="javascript:;" class="collapse"></a>
                            <a href="#portlet-config" data-toggle="modal"                      class="config"></a>
                            <a href="javascript:;" class="reload"></a>
                            <a href="javascript:;" class="remove"></a>
                        </div>
                    </div>
                    <div class="portlet-body">
                        <table class="table table-bordered table-hover">
                            <thead>

                            </thead>
                            <tbody>
            <form action="newGame.php" method="POST" id="input_type" name="input_type">
           <div class="control-group">
                               <label class="control-label"  > Add Input</label>
                               <div class="controls">
                                  <select  class="medium m-wrap question_type" data-question-no="<?echo $i;?>" tabindex="1" id="type<?echo $i;?>" name="type<?echo $i;?>">
                                  <option value="">Input Type</option>
                                     <option value="1">Multiple Choice</option>
                                     <option value="2">Input Field</option>
                                  </select>
                               </div>
                               <div id="answer_no_<?php echo $i ?>"></div>
                            </div>
    </form>

                            </tbody>
                        </table>
                    </div>
                </div>

    <script>
    $(document).ready(function(){
        $('.question_type').change(function(){
            var question_no=$(this).attr('data-question-no');
            $.ajax({
                url: "form.php",
                type:'post',
                data:{
                    type:$(this).val(),
                    i:question_no
                },
                success:function(data){
                    $('#answer_no_'+question_no).html(data);
                }

           });
    });
    });
    </script>
                    <?
                    }

             ?>

                    <!-- END BORDERED TABLE PORTLET-->

        <!-- BEGIN PAGE CONTAINER-->
        <div class="container-fluid">
            <!-- BEGIN PAGE HEADER-->
            <div class="row-fluid">
                <div class="span12">
                    <!-- BEGIN STYLE CUSTOMIZER -->
                    <div class="color-panel hidden-phone">
                        <div class="color-mode-icons icon-color"></div>
                        <div class="color-mode-icons icon-color-close"></div>
                        <div class="color-mode">
                            <p>THEME COLOR</p>
                            <ul class="inline">
                                <li class="color-black current color-default" data-style="default"></li>
                                <li class="color-blue" data-style="blue"></li>
                                <li class="color-brown" data-style="brown"></li>
                                <li class="color-purple" data-style="purple"></li>
                                <li class="color-white color-light" data-style="light"></li>
                            </ul>
                            <label class="hidden-phone">
                            <input type="checkbox" class="header" checked value="" />
                            <span class="color-mode-label">Fixed Header</span>
                            </label>                            
                        </div>
                    </div>
                    <!-- END BEGIN STYLE CUSTOMIZER --> 
                    <!-- BEGIN PAGE TITLE & BREADCRUMB-->           
                    <h3 class="page-title">

                    </h3>

                    <!-- END PAGE TITLE & BREADCRUMB-->
                </div>
            </div>
            <!-- END PAGE HEADER-->
            <!-- BEGIN PAGE CONTENT-->

            <div class="row-fluid">
                <div class="span12" >

                <form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="POST" >
                <input type="hidden" id="session" data="@Request.RequestContext.HttpContext.Session['questNo']" />
            <!--    <a  class="btn green"  type="submit" ><i class="icon-plus" ></i></a> -->
            <button type="submit" id="add_q" name="add_q" class="btn green"><i class="icon-plus"></i></button>
                                    </form>

            </div>
            <!-- END PAGE CONTENT-->
        </div>
        <!-- END PAGE CONTAINER-->  
        <button type="submit" class="btn yellow btn-block" id="getGames" name="getGames" class="btn green">Create Game    <i &nbsp class="m-icon-big-swapright m-icon-white"></i></button>                  
                </form>
                </div>
    </div>
    <!-- END PAGE -->

storeGame.php, , , .

    <?
    session_start();
    include_once("../Includes/db_connection.php");
    $lecturer_id = $_SESSION["lecturer_id"];
    $game_name=mysql_real_escape_string($_POST['game_name']);
    echo $_SESSION["lecturer_id"];;
    echo $game_name;
    mysql_query("insert into games(game_name, lecturer_id) values ('$game_name', '$lecturer_id')");
    for($i=0;$i<$_SESSION["q_inc"];$i++)
    {
      $input_type = mysql_real_escape_string($_POST['type'.$i]);
      if($input_type=='1') 
      {
      $question= $_POST['statement'.$i];
      $val1= $_POST['option'.$i.'1'];
      $val2= $_POST['option'.$i.'2'];
      $val3= $_POST['option'.$i.'3'];
      $val4= $_POST['option'.$i.'4'];
      $default1= $_POST['option'.$i.'1'.'_default'];
      $default2= $_POST['option'.$i.'2'.'_default'];
      $default3= $_POST['option'.$i.'3'.'_default'];
      $default4= $_POST['option'.$i.'4'.'_default'];
      mysql_query("insert into subgames(game_id, input_id, statement, option1, option2, option3, option4, default1, default2, default3, default4) values ((SELECT id 
     FROM games WHERE game_name = '$game_name'), '$input_type', '$question', '$val1', '$val2', '$val3', '$val4', '$default1', '$default2', '$default3', '$default4')");
     $error= mysql_error();
     }
     elseif($input_type=='2')
     {
     $question= $_POST['quest'];
     $answer= $_POST['ans'];
     // it is not implemented so leave it
     }

     }

, , , , .

+1
1

, , . .

1: HTML- . , , , . .. .

2: , . , .

3: , . , name= "gender" , value = "male" value = "female". .

4:, , .

5: . , value

6:, funtion, , a, b, c. form_multiple() form1 form_input()

7:, , , . , i.

====================

.

1: .


form.php

<?php
$i = $_POST['i'];
$_SESSION["input_type"][$i] = $_POST["type"];
if ($_SESSION["input_type"][$i] == 1) {
    form_multiple($i);
} elseif ($_SESSION["input_type"][$i] == 2) {
    form_input($i);
}

function form_multiple($i)
{
    ?>
    <div class="control-group">
        <div class="controls">
            <textarea class="large m-wrap" placeholder=" Statement " cols="50" rows="3" name="statement<?php echo $i; ?>" style="text-align:center;" id="statement<?php echo $i; ?>"></textarea>
        </div>
    </div>
    <div class="name">
        <input name="option<?php echo $i . '1'; ?>" id="option<?php echo $i . '1'; ?>" placeholder="Option 1"
               style="width:170px;" type="text"/>

        <input name="option<?php echo $i . '2'; ?>" id="option<?php echo $i . '2'; ?>" type="text" style="width:170px;"
               placeholder="Option 2"/>

        <input name="option<?php echo $i . '3'; ?>" id="option<?php echo $i . '3'; ?>" type="text" style="width:170px;"
               placeholder="Option 3"/>

        <input name="option<?php echo $i . '4'; ?>" id="option<?php echo $i . '4'; ?>" type="text" style="width:170px;"
               placeholder="Option 4"/>

    </div>
    <div class="control-group">
        <div class="controls">
            Choose Default Option
            <br/>
            <label class="radio">
                <input type="radio" value="1" name="option<?php echo $i; ?>_default" id="option<?php echo $i . '1'; ?>_default"/>
                Option 1
            </label>
            <br/>
            <label class="radio">
                <input type="radio" value="2" name="option<?php echo $i; ?>_default" id="option<?php echo $i . '2'; ?>_default"
                       checked />
                Option 2
            </label>
            <br/>
            <label class="radio">
                <input type="radio" value="3" name="option<?php echo $i; ?>_default" id="option<?php echo $i . '3' ?>_default"/>
                Option 3
            </label>
            <br/>
            <label class="radio">
                <input type="radio" value="4" name="option<?php echo $i; ?>_default" id="option<?php echo $i . '4'; ?>_default"/>
                Option 4
            </label>
        </div>
    </div>
<?php
}
//end
?>

<?php
function form_input($i)
{
    ?>
    <div class="control-group" id="field" name="field">
        <label class="control-  label">Answer</label>
        <div class="controls">
            <input type="text" placeholder="Answer" id="ans" name="ans_<?php echo $i; ?>" class="m-wrap small"/>
        </div>
    </div><?php
}
?>

=====================================

, , . , $_SESSION["q_inc"]. , .


    <?php
session_start();
include_once("../Includes/db_connection.php");
//include_once("form.php");
if(isset($_POST['total_q'])){
$_SESSION["q_inc"]=$_POST['total_q'];
}
if (!isset($_SESSION["q_inc"])) {
    $_SESSION["q_inc"] = 2;
}

$_SESSION["questNo"] = $_SESSION["q_inc"];
if (!isset($_SESSION["lecturer_id"])) {
    header("Location:../login.php");
}
//if($_SERVER['add_q'] == 'POST')
//$counter=0;


if (isset($_POST['add_q'])) {
    $_SESSION["q_inc"]++;
}

?>
<!DOCTYPE html>
<!--[if IE 8]>
<html lang="en" class="ie8"> <![endif]-->
<!--[if IE 9]>
<html lang="en" class="ie9"> <![endif]-->
<!--[if !IE]><!-->
<html lang="en"> <!--<![endif]-->
<!-- BEGIN HEAD -->
<head>
    <script type="text/javascript" src="../includes/jquery.js"></script>


    <meta charset="utf-8"/>
    <title>ClassEx</title>
    <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
    <meta content="" name="description"/>
    <meta content="" name="author"/>
    <link href="../assets/bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
    <link href="../assets/css/metro.css" rel="stylesheet"/>
    <link href="../assets/bootstrap/css/bootstrap-responsive.min.css" rel="stylesheet"/>
    <link href="../assets/font-awesome/css/font-awesome.css" rel="stylesheet"/>
    <link href="../assets/fullcalendar/fullcalendar/bootstrap-fullcalendar.css" rel="stylesheet"/>
    <link href="../assets/css/style.css" rel="stylesheet"/>
    <link href="../assets/css/style_responsive.css" rel="stylesheet"/>
    <link href="../assets/css/style_default.css" rel="stylesheet" id="style_color"/>
    <link rel="stylesheet" type="text/css" href="../assets/chosen-bootstrap/chosen/chosen.css"/>
    <link rel="stylesheet" type="text/css" href="../assets/uniform/css/uniform.default.css"/>
    <link rel="shortcut icon" href="../assets/img/favicon.ico"/>

</head>
<!-- END HEAD -->
<!-- BEGIN BODY -->
<body class="fixed-top">
<!-- BEGIN HEADER -->
<div class="header navbar navbar-inverse navbar-fixed-top">
    <!-- BEGIN TOP NAVIGATION BAR -->
    <div class="navbar-inner">
        <div class="container-fluid">
            <!-- BEGIN LOGO -->
            <a class="brand" href="#">
                <img src="../assets/img/logoclassex.jpg" alt="logo" height="35px" width="35px""/>
            </a>
            <!-- END LOGO -->
            <!-- BEGIN RESPONSIVE MENU TOGGLER -->
            <a href="javascript:;" class="btn-navbar collapsed" data-toggle="collapse" data-target=".nav-collapse">
                <img src="../assets/img/menu-toggler.png" alt=""/>
            </a>
            <!-- END RESPONSIVE MENU TOGGLER -->
            <!-- BEGIN TOP NAVIGATION MENU -->
            <ul class="nav pull-right">


                <!-- BEGIN NOTIFICATION DROPDOWN -->

                <!-- END NOTIFICATION DROPDOWN -->
                <!-- BEGIN INBOX DROPDOWN -->

                <!-- END INBOX DROPDOWN -->
                <!-- BEGIN TODO DROPDOWN -->

                <!-- END TODO DROPDOWN -->

            </ul>
            <!-- END TOP NAVIGATION MENU -->
        </div>
    </div>
    <!-- END TOP NAVIGATION BAR -->
</div>
<!-- END HEADER -->
<!-- BEGIN CONTAINER -->
<div class="page-container row-fluid">
    <!-- BEGIN SIDEBAR -->
    <div class="page-sidebar nav-collapse collapse">
        <!-- BEGIN SIDEBAR MENU -->
        <ul>
            <li>
                <!-- BEGIN SIDEBAR TOGGLER BUTTON -->
                <div class="sidebar-toggler hidden-phone"></div>
                <!-- BEGIN SIDEBAR TOGGLER BUTTON -->
            </li>

            <li class="start ">
                <a href="lecturer.php">
                    <i class="icon-home"></i>
                    <span class="title">Dashboard</span>
                </a>
            </li>


            <li class="">
                <a href="../includes/logout.php">
                    <i class=" icon-off"></i>
                    <span class="title">Logout</span>
                </a>
            </li>
        </ul>
        <!-- END SIDEBAR MENU -->
    </div>
    <!-- END SIDEBAR -->
    <!-- BEGIN PAGE -->
    <div class="page-content">
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>"  method="POST" >
            <input type="hidden" id="session" data="@Request.RequestContext.HttpContext.Session['questNo']" />
            <!--    <a  class="btn green"  type="submit" ><i class="icon-plus" ></i></a> -->
            Enter no of question<input name="total_q" type="text" />
            <input type="submit" />
            <!--<button type="submit" id="add_q" name="add_q" class="btn green"><i class="icon-plus"></i></button>-->
        </form>
        <form action="storeGame.php" method="POST">
            <div class="control-group">
                <label class="control-label">Game Name</label>

                <div class="controls">
                    <input type="text" id="game_name" name="game_name" placeholder="Enter Game Name"
                           class="m-wrap large"/>
                </div>
            </div>
            <!-- BEGIN BORDERED TABLE PORTLET-->
            <?php
            $q_no = 5;
            for ($i = 0; $i < $_SESSION["q_inc"]; $i++) {
                $temp = $i;
                ?>
                <div class="portlet box yellow">
                    <div class="portlet-title">
                        <h4><i class="icon-coffee"></i>#<?php echo ($temp + 1); ?></h4>

                        <div class="tools">
                            <a href="javascript:;" class="collapse"></a>
                            <a href="#portlet-config" data-toggle="modal" class="config"></a>
                            <a href="javascript:;" class="reload"></a>
                            <a href="javascript:;" class="remove"></a>
                        </div>
                    </div>
                    <div class="portlet-body">
                        <table class="table table-bordered table-hover">
                            <div class="control-group">
                                <label class="control-label"> Add Input</label>

                                <div class="controls">
                                    <select class="medium m-wrap question_type" data-question-no="<?php echo $i; ?>"
                                            tabindex="1" id="type<?php echo $i; ?>" name="type<?php echo $i; ?>">
                                        <option value="">Input Type</option>
                                        <option value="1">Multiple Choice</option>
                                        <option value="2">Input Field</option>
                                    </select>
                                </div>
                                <div id="answer_no_<?php echo $i; ?>"></div>
                            </div>
                            </tbody>
                        </table>
                    </div>
                </div>
            <?php
            }
            ?>
            <script>
                $(document).ready(function () {
                    $('.question_type').change(function () {
                        var question_no = $(this).attr('data-question-no');
                        $.ajax({
                            url: "form.php",
                            type: 'post',
                            data: {
                                type: $(this).val(),
                                i: question_no
                            },
                            success: function (data) {
                                $('#answer_no_' + question_no).html(data);
                            }

                        });
                    });
                });
            </script>
            <!-- END BORDERED TABLE PORTLET-->

            <!-- BEGIN PAGE CONTAINER-->
            <div class="container-fluid">

                <!-- BEGIN PAGE CONTENT-->

                <div class="row-fluid">
                    <div class="span12">

                        <!--                    <form action="-->
                        <?php //echo $_SERVER['PHP_SELF']; ?><!--"  method="POST" >-->
                        <!--                        <input type="hidden" id="session" data="@Request.RequestContext.HttpContext.Session['questNo']" />-->
                        <!--                        <button type="submit" id="add_q" name="add_q" class="btn green"><i class="icon-plus"></i></button>-->
                        <!--                    </form>-->

                    </div>
                    <!-- END PAGE CONTENT-->
                </div>
                <!-- END PAGE CONTAINER-->
                <button type="submit" class="btn yellow btn-block" id="getGames" name="getGames" class="btn green">
                    Create Game <i &nbsp class="m-icon-big-swapright m-icon-white"></i></button>
        </form>
    </div>
</div>
<!-- END PAGE -->
</div>
<!-- END CONTAINER -->
<!-- BEGIN FOOTER -->
<div class="footer">
    University of Passau ClassEx Team
    <div class="span pull-right">
        <span class="go-top"><i class="icon-angle-up"></i></span>
    </div>
</div>
<!-- END FOOTER -->
<!-- BEGIN JAVASCRIPTS -->
<!-- Load javascripts at bottom, this will reduce page load time -->
<script src="../assets/js/jquery-1.8.3.min.js"></script>
<script src="../assets/breakpoints/breakpoints.js"></script>
<script src="../assets/jquery-slimscroll/jquery-ui-1.9.2.custom.min.js"></script>
<script src="../assets/bootstrap/js/bootstrap.min.js"></script>
<script src="../assets/js/jquery.blockui.js"></script>
<script src="../assets/js/jquery.cookie.js"></script>
<script src="../assets/fullcalendar/fullcalendar/fullcalendar.min.js"></script>
<script type="text/javascript" src="../assets/uniform/jquery.uniform.min.js"></script>
<script type="text/javascript" src="../assets/chosen-bootstrap/chosen/chosen.jquery.min.js"></script>
<!-- ie8 fixes -->
<!--[if lt IE 9]>
<script src="../assets/js/excanvas.js"></script>
<script src="../assets/js/respond.js"></script>
<![endif]-->
<script src="../assets/js/app.js"></script>
<script>
    jQuery(document).ready(function () {
        // initiate layout and plugins
        App.setPage('calendar');
        App.init();
    });
</script>
<!-- END JAVASCRIPTS -->
</body>
<!-- END BODY -->
</html>

===============================

. "default_option"


storeGame.php

    <?php
session_start();
include_once("../Includes/db_connection.php");
$lecturer_id = $_SESSION["lecturer_id"];
$game_name=mysql_real_escape_string($_POST['game_name']);
echo $_SESSION["lecturer_id"];;
echo $game_name;
$sql="insert into games(game_name, lecturer_id) values ('$game_name', '$lecturer_id')";
if(!mysql_query($sql)){
    echo "Error in storing into database!<br/>";
}

for($i=0;$i<$_SESSION["q_inc"];$i++)
{
    $input_type = mysql_real_escape_string($_POST['type'.$i]);
    if($input_type=='1')
    {
        $question= $_POST['statement'.$i];
        $val1= $_POST['option'.$i.'1'];
        $val2= $_POST['option'.$i.'2'];
        $val3= $_POST['option'.$i.'3'];
        $val4= $_POST['option'.$i.'4'];
        //Here should be only one default value
        $default_option= $_POST['option'.$i.'_default'];
        /*$default1= $_POST['option'.$i.'1'.'_default'];
        $default2= $_POST['option'.$i.'2'.'_default'];
        $default3= $_POST['option'.$i.'3'.'_default'];
        $default4= $_POST['option'.$i.'4'.'_default'];*/
        $sql="  insert into subgames(   game_id,                                                        input_id,       statement,      option1,    option2, option3, option4, default_option)
                             values (   (SELECT id FROM games WHERE game_name = '$game_name' limit 1),  '$input_type',  '$question',    '$val1',    '$val2', '$val3', '$val4', '$default_option')";
        if(!mysql_query($sql)){
            echo "Error";
        }
        else{
            echo "Success";
        }
        //$error= mysql_error();
    }
    elseif($input_type=='2')
    {
        $question= $_POST['quest'];
        $answer= $_POST['ans'];
        // it is not implemented so leave it
    }

}
+1

Source: https://habr.com/ru/post/1617332/


All Articles