php _POST not working in html form with JS validation [closed]

可紊 提交于 2020-06-23 18:50:49

问题


I have the code below. When I try to run access post elements with these lines

    $tempskill = ($_POST['skill']);
    $temptopic = ($_POST['topic']);

I get an error because it is not able to access the chosen skill or topic element from drop down. The goal was to allow a user to select items from drop down menus that are dependent on the previous one. Then, the chosen items can be called by the post function and inserted into a database table.

Can someone help?

<?php  
  require("functions/convert_functions.php");
 $connect = mysqli_connect("localhost", "root", "", "questionbank");
 
  if(isset($_POST["insert"]))  
  {  
        session_start();
        $email = $_SESSION['email'];
        $question = ($_POST['question']);
        $type = ($_POST['type']);
        $tempskill = ($_POST['skill']);
        $temptopic = ($_POST['topic']);

       

       
        if (adjust_convert($type) == 0){
          
          $skill = convert_math_skill($tempskill);
          $topic = convert_math_topic($temptopic);

        }

        if (adjust_convert($type) == 1){
          
          $skill = convert_writing_skill($tempskill);
          $topic = convert_english_topic($temptopic);

        }

        if (adjust_convert($type) == 2){
          
          $skill = convert_reading_skill($tempskill);
          $topic = convert_english_topic($temptopic);

        }

        $answerA = ($_POST['answerA']);
        $answerB = ($_POST['answerB']);
        $answerC = ($_POST['answerC']);
        $answerD = ($_POST['answerD']);
        $correctanswer = ($_POST['correctanswer']);

        $checksql = "SELECT Question FROM questionlist WHERE Question = '$question'"; 
        $resultcheck = $connect->query($checksql);
  
        if(($resultcheck->num_rows > 0)){
        echo("Entry exists! Please try again!");
        }
  
        else {
      
        if (empty($email)){
            echo "Not logged in";
        }
        else {
          
          if (empty($_FILES["image"]["tmp_name"])) {

            $sql = "INSERT INTO questionlist (Question, Email, type, Topic, Skill, imagename, answerA, answerB, answerC, answerD, correctanswer) VALUES ('$question', '$email', '$type', '$topic', '$skill', '', '$answerA', '$answerB', '$answerC','$answerD','$correctanswer')";

            
            if (mysqli_query($connect, $sql)) {
                //echo '<script>alert("Image Inserted into Database")</script>'; 
    
            } else {
                    echo "Error: " . $sql . "<br>" . mysqli_error($connect);
            }
  
          }
          else {

            $file = addslashes(file_get_contents($_FILES["image"]["tmp_name"]));  
            $sql = "INSERT INTO questionlist (Question, Email, type, Topic, Skill, imagename, answerA, answerB, answerC, answerD, correctanswer) VALUES ('$question', '$email', '$type', '$topic', '$skill', '$file', '$answerA', '$answerB', '$answerC','$answerD','$correctanswer')";
          
            if (mysqli_query($connect, $sql)) {
                //echo '<script>alert("Image Inserted into Database")</script>'; 
    
            } else {
                    echo "Error: " . $sql . "<br>" . mysqli_error($connect);
            }
            
          }
         }
      }

  } 
 


 ?>  
 <!DOCTYPE html>  
 <html>  
      
 <head>  
           <title>Ensemble Education</title>  
           <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>  
           <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  
           <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
           <script src="js/jquery.js"></script>
            <script src="js/bootstrap.js"></script>
            <script src="js/scripts.js"></script>  
      </head>  
  
        
      <nav class="navbar navbar-inverse navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="index.php">Ensemble Education</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">

            <?php 
            require("functions/functions.php");
            
            if(logged_in());
            
            
            ?>

                <li><a href="index.php">Profile</a></li>

               <li><a href="logout.php">Logout</a></li>

           
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>
           <br /><br />  
           <div class="container" style="width:500px;">
           <div class="row justify-content-center">
            <div class="col-lg-5">
              <div class="main_title">
                <h2 class="mb-3">Submit your question here!</h2>
                <form method="post" enctype="multipart/form-data" onsubmit="return validate_with_js(this)">
                  <label for="question">Question:</label><br>
                  <input type="text" id="question" name="question" data-required><br>
                  
                  <select name="type" id="type" data-required>
                    <option value="">-Select Your Category-</option>
                    <option value="mathcalc">SAT Math Calculator</option>
                    <option value="mathnocalc">SAT Math No Calculator</option>
                    <option value="reading">SAT Reading</option>
                    <option value="writing">SAT Writing</option>
                  </select>


                <div class="container2">

                  <div class="writing">
                    <select class="second-level-select" name="topic" id="type2" data-required>
                      <option value="">-Select Your Topic-</option>
                      <option value="science">Science</option>
                      <option value="socialstudies">Social Studies</option>
                      <option value="literature">Literature</option>
                    </select>
                  </div>
                
                  <div class="reading">
                    <select class="second-level-select" name="topic" id="type2" data-required>
                      <option value="">-Select Your Topic-</option>
                      <option value="science">Science</option>
                      <option value="socialstudies">Social Studies</option>
                      <option value="literature">Literature</option>
                    </select>
                  </div>
                
                  
            
                  <div class="mathcalc">
                    <select class="second-level-select" name="topic" id="type2" data-required>
                      <option value="">-Select Your Topic-</option>
                      <option value="basic">Basic Algebra</option>
                      <option value="advanced">Advanced Algebra</option>
                      <option value="problem">Problem Solving and Data Analysis</option>
                      <option value="additional">Additional Topics</option>
                    </select>
                  </div>
               
                  <div class="mathnocalc">
                    <select class="second-level-select" name="topic" id="type2" data-required>
                      <option value="">-Select Your Topic-</option>
                      <option value="basic">Basic Algebra</option>
                      <option value="advanced">Advanced Algebra</option>
                      <option value="problem">Problem Solving and Data Analysis</option>
                      <option value="additional">Additional Topics</option>
                    </select>
                  </div>

              </div>

                <div class="second-level-container">

                <div class="science">
                
                    <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Command of Evidence">Command of Evidence</option>
                      <option value="Words in Context">Words in Context</option>
                      <option value="Grammar Conventions">Grammar Conventions</option>
                      <option value=">Idea Expression">>Idea Expression</option>
                    </select>
      
                </div>
                <div class="socialstudies">
                    
                <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Command of Evidence">Command of Evidence</option>
                      <option value="Words in Context">Words in Context</option>
                      <option value="Grammar Conventions">Grammar Conventions</option>
                      <option value=">Idea Expression">>Idea Expression</option>
                    </select>

                </div>
                <div class="literature">
                    
                    <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Command of Evidence">Command of Evidence</option>
                      <option value="Words in Context">Words in Context</option>
                      <option value="Grammar Conventions">Grammar Conventions</option>
                      <option value=">Idea Expression">>Idea Expression</option>
                    </select>

                </div>

                <div class="basic">

                      
                    <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Linear Functions">Linear Functions</option>
                      <option value="Single variable equations">Single variable equations</option>
                      <option value="Systems of linear equations">Systems of linear equations</option>
                      <option value="Absolute value">Absolute value</option>
                    </select>
     
                </div>

                <div class="advanced">

                <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Manipulating polynomials">Manipulating polynomials</option>
                      <option value="Dividing polynomials">Dividing polynomials</option>
                      <option value="Exponential functions">Exponential functions</option>
                      <option value="Function notation">Function notation</option>
                      <option value="Solving exponential equations">Solving exponential equations</option>
                      <option value="Systems of equations with nonlinear equations">Systems of equations with nonlinear equations</option>
                </select>
                   
                </div>
                <div class="problem">

                <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Ratios and proportions">Ratios and proportions</option>
                      <option value="Scatterplots and graphs">Scatterplots and graphs</option>
                      <option value="Categorical data and probabilities">Categorical data and probabilities</option>
                      <option value="Experimental interpretation">Experimental interpretation</option>
                      <option value="Mean, median, mode, standard deviation">Mean, median, mode, standard deviation</option>
                  
                </select>

                 
                </div>
                <div class="additional">

                <select class="second-level-container" name="skill" id="type2" data-required>
                      <option value="">-Select Your Skill-</option>
                      <option value="Coordinate geometry—lines and slopes">Coordinate geometry—lines and slopes</option>
                      <option value="Coordinate geometry—nonlinear functions">Coordinate geometry—nonlinear functions</option>
                      <option value="Geometry—circles">Geometry—circles</option>
                      <option value="Geometry—lines and angles">Geometry—lines and angles</option>
                      <option value="Geometry—solid geometry">Geometry—solid geometry</option>
                      <option value="Geometry—triangles and polygons">Geometry—triangles and polygons</option>
                      <option value="Trigonometry">Trigonometry</option>
                      <option value="Complex numbers">Complex numbers</option>
                </select>

                </div>

            </div>

                  <label for="answer">Answer Choices</label><br>
                  <input type="text" id="answerA" name="answerA" data-required><br>
                  <input type="text" id="answerB" name="answerB" data-required><br>
                  <input type="text" id="answerC" name="answerC" data-required><br>
                  <input type="text" id="answerD" name="answerD" data-required><br>
   

                  <br>
                  <br>


                  <label for="correctanswer">Choose your correct answer</label><br>

                  <input type="radio" id="answerA" name="correctanswer" value="A" data-required>
                                    <label for="answerA">A</label><br>
                                    <input type="radio" id="answerB" name="correctanswer" value="B" >
                  <label for="answerB">B</label><br>
                  <input type="radio" id="answerC" name="correctanswer" value="C" >
                  <label for="answerC">C</label><br>
                  <input type="radio" id="answerD" name="correctanswer" value="D"  >
                                    <label for="answerA">D</label><br>
                  <input type="file" name="image" id="image" />  
                     <br />  
                  <input type="submit" name="insert" id="insert" value="Insert" class="btn btn-info" />  
                <br><br><br>
                </form>

                  </div>
              </div>  
            
           </div>   


 
      </body>  
 </html>  

 <script>  
 
$(document).ready(function(){  
       $('#insert').click(function(){  
           var image_name = $('#image').val();  
           if(image_name == '')  
           {   
                return true;  
           }  
           else  
           {  
                var extension = $('#image').val().split('.').pop().toLowerCase();  
                if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1)  
                {  
                     alert('Invalid Image File');  
                     $('#image').val('');  
                     return false;  
                }  
           }  
      });  
      }); 

      $(document).ready(function() {
        $('#type').bind('change', function() {
        var elements = $('div.container2').children().hide(); // hide all the elements
        var value = $(this).val();

        if (value.length) { // if somethings' selected
            elements.filter('.' + value).show(); // show the ones we want
        }
    }).trigger('change');
    
    $('.second-level-select').bind('change', function() {
        var elements = $('div.second-level-container').children().hide(); // hide all the elements
        var value = $(this).val();

        if (value.length) { // if somethings' selected
            elements.filter('.' + value).show(); // show the ones we want
        }
    }).trigger('change');
    });


 </script>  

Here's the jsfiddle version

http://jsfiddle.net/mrzjywkp/

Thanks

来源:https://stackoverflow.com/questions/62507034/php-post-not-working-in-html-form-with-js-validation

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!