【问题标题】:submit an html form created from database using for loop使用 for 循环提交从数据库创建的 html 表单
【发布时间】:2015-10-31 12:01:47
【问题描述】:

我正在尝试进行在线投票
目前,我正在尝试从 不同页面 上的表单 获取输入,然后使用 for 循环在下一页上显示所有民意调查。每个投票表单都可以根据创建者使用单选或复选框。我在提交个人民意调查时遇到问题。由于表单是使用 for 循环创建的,因此每个表单都作为同名的提交按钮。
另一个主要问题是,如果创建者选择复选框进行轮询(即允许多选),我希望在数据库中分别输入每个选项。

有没有办法使用 AJAX 解决这个问题?

`

 $pollqry2 = "SELECT * FROM pollq ";

 $PollId= $PTitle= $PDesc= $POption= $POption1= $POption2= $POption3= $POption4= $POption5= $POption6= $POption7= $Target_Aud= $SubGroup= $PollType= $CloseDate= $PNotify= $PComment= $PostAs= array();
 $j=0;
 $i=0;

 $pollres = mysqli_query($con,$pollqry2);

 while($poll = mysqli_fetch_assoc($pollres)){
     $PollId[$i]= $poll['PollId'];
     $PTitle[$i]= $poll['PTitle'];
     $PDesc[$i]= $poll['PDesc'];
     $POption[$i]= $poll['POption'];
     $POption1[$i]= $poll['POption1'];
     $POption2[$i]= $poll['POption2'];
     $POption3[$i]= $poll['POption3'];
     $POption4[$i]= $poll['POption4'];
     $POption5[$i]= $poll['POption5'];
     $POption6[$i]= $poll['POption6'];
     $POption7[$i]= $poll['POption7'];
     $Target_Aud[$i]= $poll['Target_Aud'];
     $SubGroup[$i]= $poll['SubGroup'];
     $PollType[$i]= $poll['PollType'];
     $CloseDate[$i]= date('j F Y',strtotime($poll['CloseDate']));
     $PNotify[$i]= $poll['PNotify'];
     $PComment[$i]= $poll['PComment'];
     $PostAs[$i]= $poll['PostAs'];
     $i++;
 }
 ?> 

    <!-- Main content -->
 <section class="newsfeed">
     <div class="box box-solid box-info">

         <table class="disscussio" width="750">

             <tr>
                 <td>
                     <font size="6"> Polls at [Name of appartment]</font>
                     <br>&nbsp; &nbsp;&nbsp; 
                     <font size="3">
                         <a href="#">Active Polls: <span class="badge"> 5</span></a> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                         <a href="#">All Poll</a>
                     </font><br>
                 </td>
             </tr>
             <table class="news">

                <?php 
                 function dateDiff($start, $end)
                     {
                         $start_ts = strtotime($start);
                         $end_ts = strtotime($end);
                         $diff = $end_ts - $start_ts;
                         return round($diff / 86400);
                     }

                 for($j=0; $j<$i;$j++){ 
                     $date1 = date('Y-m-d', strtotime($CloseDate[$j]));
                     $date2 = date('y-m-d',strtotime("now"));
                     $date3 = dateDiff($date2, $date1);
                     if($date3<0){$date4 = "Closed";}
                     elseif($date3 == 0){$date4 = "Today";}
                     else{$date4 = $CloseDate[$j];}

                 ?>
                 <tr> 
                     <td width="748" class="dispad">

                         <h4><b><?php echo $PTitle[$j]; ?></b></h4>
                         <pre><?php echo $PDesc[$j]; ?></pre>

                            <form method="post">
                                <div class="poll-prog"> 
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "1"; ?>" value="<?php echo $POption1[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 10%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption1[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>

                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "2"; ?>" value="<?php echo $POption2[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar progress-bar-info progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 80%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption2[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>

                                    <?php if(!empty($POption3[$j])){ ?>
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "3"; ?>" value="<?php echo $POption3[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar progress-bar-warning progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 20%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption3[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                    <?php } ?>

                                    <?php if(!empty($POption4[$j])){ ?>
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "4"; ?>" value="<?php echo $POption1[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar progress-bar-danger progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 50%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption4[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                    <?php } ?>

                                    <?php if(!empty($POption5[$j])){ ?>
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "5"; ?>" value="<?php echo $POption5[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar progress-bar-primary progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 60%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption5[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                    <?php } ?>

                                    <?php if(!empty($POption6[$j])){ ?>
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "6"; ?>" value="<?php echo $POption6[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar bg-orange progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 40%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption6[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                    <?php } ?>

                                    <?php if(!empty($POption7[$j])){ ?>
                                    <div class="row">
                                        <div class="pull-left col-md-1">
                                            <input class="minimal" type="<?php echo $POption[$j]; ?>" name="Pop<?php if($POption[$j]=='checkbox') echo "7"; ?>" value="<?php echo $POption7[$j]; ?>">
                                        </div>
                                        <div class="col-md-5 progress" style="width:400px;  padding:0;background:rgba(148, 215, 250, 0.37)">
                                            <div class="progress-bar bg-purple progress-bar-striped" role="progressbar" aria-valuenow="40" aria-valuemin="0" aria-valuemax="100" style="width: 30%">
                                                <span>
                                                    <label>
                                                        <?php echo $POption7[$j]; ?>
                                                    </label>
                                                </span>
                                            </div>
                                        </div>
                                    </div>
                                    <br>
                                    <?php } ?>
                                </div>
                                <div class="poll-btn"><center>
                                    <input type="submit" class="btn btn-success btn-flat" name="PAsubmit<?php echo $j ?>" value="Vote" ></center>
                                </div>
                            </form>
                         <br>
                          By 'sender Name' &nbsp;&nbsp;&nbsp; <br>
                         <font>Closing Date : <b><?php echo $date4; ?></b></font>

                          <p style="float:right"> 
                              VOTES  <span class="badge">5</span>
                              &nbsp; &nbsp; &#124;&nbsp; &nbsp;
                              COMMENTS <span class="badge">5</span>
                              &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;
                              <a href="">
                                  <img src="plugins/delete.png" height="15" widht="15" align="right">
                              </a>
                         </p>
                         <br>
                         <font>Open to <?php echo $Target_Aud[$j] ?></font>
                     </td>    
                 </tr>
                 <?php 
                 }
                 ?>

               </table>
       </table>
        </div> 
    </section><!-- /.content -->
  </div><!-- /.content-wrapper -->

`

【问题讨论】:

    标签: javascript php jquery html forms


    【解决方案1】:

    您可以在所有表​​单中添加一个类并使用类提交特定表单。

    像这样:

     $('.classname').click(function(){
       $(this).submit();
     });
    

    使用复选框名称作为数组并在表单提交之后。使用 foreach 或 for 循环将其存储在数据库中。

    【讨论】:

      【解决方案2】:

      这就是我所做的 -

      function getVote(clicked_id) {                        
           var val = [];
           var userp=<?php echo $_SESSION['newdata'] ;?>;
           var div_id = 'poll'+clicked_id;
           $('#'+div_id+' input:checked').each(function(i){
               val[i] = $(this).val();
           });
           if(typeof val != "undefined" && val != null && val.length > 0){
      
                //ajax code to submit form
      
            }else{
                alert("Please Select Choice First");
                }
        }
      

      我在提交按钮上使用了一个 onClick 函数来获取它的 id 使用它来获取相应的 div 的 id。之后,我在该 div 中找到了检查输入的数量,将它们的值放入一个数组中并将其传递给 Php 以使用 ajax 提交。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-16
        • 2021-08-15
        • 2020-07-18
        • 1970-01-01
        • 2012-04-25
        • 2016-10-11
        • 2016-03-09
        • 1970-01-01
        相关资源
        最近更新 更多