简体   繁体   English

提交html表单后如何垂直显示输出?

[英]How can I show the output vertically after submitting the html form?

这是我得到的输出的屏幕截图

The who;e sequence(having operands , opertors and answer) in output is generating randomly which is perfect. 输出中的who; e序列(具有操作数,运算符和答案)随机生成,这是完美的。 but I want to show that in vertical manner and this is the output I want to show after clicking on generate 但是我想以垂直方式显示,这是我想在单击generate之后显示的输出 基于屏幕截图的预期输出 then Q(2)will show up in the same way but after Q(1). 那么Q(2)将以相同的方式出现,但在Q(1)之后。

this is my html form. 这是我的html表格。

    <form action="" method="POST">
              <div class="row">
                 <div class="col-25">
                   <label for="qnum">Select no.of questions:</label>
                    </div>
                     <div class = "col-75"><input type="number" id="qnum" name="que" value="1"  min="1" max="100"></div>
                     <br /><br />
               </div>
             <br />

        <div class="row">
              <div class="col-25">
                <label for="int">How many numbers You want in a sequence:</label></div>
                    <div class="col-75">
                       <select name="select" id="int">
                        <option value="2"> 2 </option>
                        <option value="3"> 3 </option>
                        <option value="4"> 4 </option>
                        <option value="5"> 5 </option>
                        <option value="6"> 6 </option>
                        <option value="7"> 7 </option>
                        <option value="8"> 8 </option>
                        <option value="9"> 9 </option>
                        <option value="10"> 10 </option>
                      </select>
                    </div>
      </div>
      <br /> 

       <div class="row">
           <div class="col-25">
             <label for="dig">Select no. of digits:</label></div>
                <div class="col-75">
                  <select name="digits" id="dig">
                   <option value="1"> 1 digit</option>
                   </select>
              </div>
              <br /><br /><br /><br />
        </div>

          <div class="row">
          <div class="col-25"><label>Select operations:</label><br /></div>
              <div class="col-75">
                <input type="checkbox" id="mix" value="all" class="toggle-button"><label>All</label>
                <input type="checkbox" id="add" name="operation[]" value="Addition" checked><label>Addition</label>
                <input type="checkbox" id="sub" name="operation[]" value="Subtraction"><label>Subtraction</label>
                <input type="checkbox" id="mult" name="operation[]" value="Multiplication"><label>Multiplication</label>
                <input type="checkbox" id="div" name="operation[]" value="Division"><label>Division</label>
               </div>
                <br /><br />
                <br /><br />
            </div><br />


        <input type="submit" name="submit" value="Generate"><br>
         <br />

 </form>
   </div>
      <!---Toggle button to select all operations if user select checkbox named "All" -->
           <script language="JavaScript">
                $( '.col-75 .toggle-button' ).click( function () {
                $( '.col-75 input[type="checkbox"]' ).prop('checked', this.checked)
      })
          </script>

Basically I generating a random sequence of arithmetic expressions which is working perfectly without any error. 基本上,我会生成一个随机的算术表达式序列,该序列可以完美运行而没有任何错误。 But after clicking generate button the output is showing horizontally and I want to generate it vertically. 但是单击生成按钮后,输出将水平显示,而我想垂直生成。 So how can I do that? 那我该怎么办呢?

Below is my php code which is generating the sequence perfectly without any error. 下面是我的php代码,它完美地生成了序列而没有任何错误。 How can I generate the output vertically? 如何垂直生成输出?

<?php
  error_reporting(E_ALL & ~E_NOTICE);

  if(isset($_POST['submit']))
  {
       //validation for no of operation selected
       $operation = $_POST['operation'];
       if(empty($operation)) 
             {
               echo "Please Select at least one operation <br/>";
             }
              else
              {  
                 $N = count($operation); //count selected operation
                    echo  "<br />";
                     echo "You have selected $N operation(s):"; 

                            for($i=0; $i < $N; $i++)  //for loop for for operator array.
                               {
                                  echo($operation[$i] . ", "); //display selected operation
                               }
                               echo "<br />";
                     //checkbox operations
                    if($N==1)   //if only one operation is selected
                        {
                             if($operation[0]=='Addition')
                                 {
                                      $rOperators = array('+');                           
                                 }
                                else if($operation[0]=='Subtraction')
                                   {
                                      $rOperators = array('-');
                                    }
                                    else if($operation[0]=='Multiplication')
                                      {
                                      $rOperators = array('*');
                                       }
                                        else
                                          {
                                            $rOperators = array('/');
                                          }
                        }
                    else if ($N==2) //if only two operations are selected by the user
                     {
                        if($operation[0]=='Addition')
                            {
                                if($operation[1]=='Subtraction')
                                    {
                                        $rOperators = array('+','-');
                                    }
                                     else if($operation[1]=='Multiplication')
                                         {
                                           $rOperators = array('+','*');
                                         }
                                          else
                                             {
                                               $rOperators = array('+','/');
                                             }                           
                            }
                            else if($operation[0]=='Subtraction')
                            {
                                if($operation[1]=='Multiplication')
                                     {
                                        $rOperators = array('-','*');
                                     }
                                    else
                                      {
                                        $rOperators = array('-','/');
                                      }
                            }
                              else
                                {
                                  $rOperators = array('*','/');
                                }
                      }
                        else if ($N==3) //if 3 operators gets selected by user
                            {
                                if($operation[0]=='Addition')
                                 {
                                     if($operation[1]=='Subtraction')
                                         {
                                             if($operation[2]=='Multiplication')
                                             {
                                                 $rOperators = array('+','-','*');    
                                             }
                                             else
                                             {
                                                 $rOperators = array('+','-','/');
                                             }

                                         }
                                      else
                                         {
                                              $rOperators = array('+','*','/');
                                         }                         
                                 }
                                 else
                                 {
                                     $rOperators = array('-','*','/');
                                 }
                            }
                        else
                            {
                                $rOperators = array('+','-','*','/');
                            }

             }

//display sequence having only single digit numbers
if($_POST['digits'] == 1)
     {
        $q = $_POST['que'];
             $previousInt = null;        //Track the previous operand
             $s = $_POST['select'];

                     for ($x = 1; $x<=$q; $x++) //for loop for no. of questions
                        {
                           $randomOperands = array();
                            $randomOperators = array();

                                    // loop over $i n times
                                   for ($i = 1; $i <=$s; $i++) //for loop for no. of integers user entered
                                     {
                                        $nextInt = rand(1, 9); // assign random operand to array slot
                                         $randomOperands[] = $nextInt;
                                            if($i < $s)
                                             {   
                                               if($previousInt === 0) //No operator after last opearnd
                                                  {
                                                 //avoid division-by-zero
                                                   $randomOperators[] = $rOperators[rand(0, 2)];
                                                  }
                                                else
                                                  {
                                                   $randomOperators[] = $rOperators[rand(0, $N-1)];
                                                  } 
                                              }  
                                        $previousInt = $nextInt;
                                      }
                                    // print array values
                                    $exp = '';     //Generating the expression
                                      foreach($randomOperands as $key=>$value1)
                                         {
                                          $exp .=  $value1 . " " ;  
                                             if(isset($randomOperators[$key]))
                                                {
                                                 $exp .=  $randomOperators[$key] ." "; 
                                                }
                                         }
                                         $res = eval("return ($exp);");//evaluate the expression 
                                           //print expression
                                        echo ("This is Q(".$x."):"), $exp."=". $res."<br>";
                          }
        }
    }
    ?>

Modify the code in which you are generating the expression which you are using as the input to the eval() function. 修改用于生成表达式的代码,该表达式将用作eval()函数的输入。 Create another string say $output_string which can be used to output your answer. 创建另一个字符串,例如$output_string ,可用于输出答案。 In this newly created string use proper HTML tags along with the generated string, for formatting it the way you want your output to look like. 在这个新创建的字符串中,将适当的HTML标记与生成的字符串一起使用,以按照所需的输出格式对其进行格式化。

It should look something like this: 它看起来应该像这样:

$exp = '';     //Generating the expression
$output_string = ''; // new string which can be used for generating the output string
foreach ( $randomOperands as $key => $value1 ) {
    $exp .=  $value1 . " " ;
    $output_string .=  $value1 . " <br>" ;
    if ( isset($randomOperators[$key]) ) {
        $exp .=  $randomOperators[$key] ." ";
        $output_string .=  $randomOperators[$key] ." <br> "; 
    }
}
$res = eval("return ($exp);");//evaluate the expression 
//print expression
echo ("This is Q(".$x."): <br>"), $output_string."= <br>". $res."<br>";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用HTML表单中的按钮,但不能提交按钮? - How can I use buttons in an HTML form, but not for submitting? 提交表单后,如何集中精力于覆盖弹出窗口? - How can I keep focus on a overlay popup after submitting a form? 在php中提交表单后如何显示错误消息? - How can I display the error message after submitting the form in php? 提交表单后从php页面重定向时如何在html页面中显示警报消息 - How to show an alert message in an html page when redirected from a php page after submitting a form 如何隐藏html表单,然后单击“提交”按钮后显示输出? - How to hide the html form and then show the output after clickin on submit button? 提交表单后如何重定向回特定的显示视图? (拉拉维尔) - How do I redirect back to a specific show View after submitting a form? (Laravel) 通过我的 html 页面提交后如何保存 php 表单? - How do I save a php form after submitting through my html page? 提交表格后如何在同一页面显示结果? - how to show the result in the same page after submitting the form? PHP/JavaScript 如何在提交表单后显示模态 - PHP/JavaScript How to show modal after submitting a form CakePHP问题:提交表单后,如何检查是否有空字段? - CakePHP question: How can i check whether there is an empty field or not after submitting form?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM