将数据从php和js发送到php

时间:2017-11-23 21:02:46

标签: javascript php jquery ajax

我想将数据从php发送到php,同时我也想将数据从js发送到php。我有一个index.php,其中包含php和js部分。在enrolled.php中,我想收集我的数据。 SQL注入或其他安全问题并不重要。我没有收到任何错误,但它没有保存到数据库。

index.php的一小部分

<!DOCTYPE html>
<html lang="en">
<head>
//smt....Not important
</head>
<body>
//smt....Not important
  <div id="dom-target" style="display: none;">
    <?php
          include_once "connection.php";

          session_start();
          $username = $_SESSION['username'];//coming from previous page.
          echo htmlspecialchars($username);   //for sending variable from php to js.
      ?>
</div>
   <script type = "text/javascript">
      $('#addmore').click(function(){ 
         var subjectone = $('#selectedsubjectone :selected').val();
         var courseone = $('#courseListone').val();
         var gradeone = $('#selectedGradeOne :selected').val();

         var div = document.getElementById("dom-target");
         var username = div.textContent;//these lines help to gett data from php
          document.getElementById("usernamee").innerHTML = username;//for checking
                  $.ajax({
                      type: "POST",
                      url: "addenrolled.php",
                      data: {
                          // Send the username (js, not php)
                          username: username,
                          subject: subjectone,
                          course: courseone,
                          grade: gradeone
                      }, success: function(data) {
                         alert("sucess");
                      }
                  });
        });
</script>
</body>
</html>

enrolled.php

<?php
    include_once "connection.php";

        $nick = $_POST['username'];
        $subject=$_POST['subject'];
        $course=$_POST['course'];
        $grade=$_POST['grade'];
        echo "$nick -- $subject -- $course -- $grade";    //for checking
        $prep = $con->prepare("INSERT INTO enrolledtable ('nickname', 'subject', 'course', 'grade') VALUES(?,?,?,?)");
        $prep->bind_param("ssss", $nick, $subject, $course, $grade);
        $send = $prep->execute();

        if ($send == TRUE) {
            echo "Courses added successfully";
            header('Location: index.php');
            exit();
        } else {
            echo "Error: " . $con->error;
            header('Location: index.php');
            exit();
        }

 ?>

1 个答案:

答案 0 :(得分:0)

将您的jQuery更改为此

<script>
$(document).ready(function(){
    $('#addmore').click(function(){ 
        var subjectone = $('#selectedsubjectone :selected').val();
        var courseone = $('#courseListone').val();
        var gradeone = $('#selectedGradeOne :selected').val();

        $.post('enrolled.php', {subjectone: subjectone, courseone: courseone, gradeone: gradeone, addmore: "yes"}, function(response){
            console.log(response);
        })

        });
    });
</script> 

然后在PHP中将准备语句修改为以下

$prep = $conn->prepare("INSERT INTO enrolledtable (`nickname`, `subject`, `course`, `grade`) VALUES(?,?,?,?)");
$prep->bind_param("ssss", $nick, $subject, $course, $grade);
$send = $prep->execute();

enrolled.php

<?php
session_start();
include_once "connection.php";

if (isset($_POST['addmore'])) {
    $nick = $_SESSION['username'];
    $subject=$_POST['subjectone'];
    $course=$_POST['courseone'];
    $grade=$_POST['gradeone'];
    // //echo "$nick -- $subject -- $course -- $grade";    //for checking
    $prep = $conn->prepare("INSERT INTO enrolledtable (`nickname`, `subject`, `course`, `grade`) VALUES(?,?,?,?)");
    $prep->bind_param("ssss", $nick, $subject, $course, $grade);
    $send = $prep->execute();

    if ($send == TRUE) {
        echo "Courses added successfully";
       // header('Location: index.php');
        exit();
    } else {
        echo "Error: " . $con->error;
        //header('Location: index.php');
        exit();
    }
}
?>