使用javascript,mysql和php将记录插入数据库

I have the following js function, which makes an ajax request, but it is not doing it for some reason. I checked alerting url and it displays it as it supposed to be, so all variables are declared.

var request = new XMLHttpRequest();
var url = "ajax_js/q_ajax.php?q="+ques+
                            "&ans="+ans+
                            "&a="+inp[0].value+
                            "&b="+inp[2].value+
                            "&c="+inp[4].value+
                            "&d="+inp[6].value+
                            "&cor="+checked+
                            "&def="+input+
                            "&q_n="+q_name+
                            "&c_id="+c_id;
request.onreadystatechange=function (){
    if(request.readyState==4 && request.status==200){
        alert(request.responseText);
    }
    request.open("GET", url, true);
    request.send();
}

Here is the code from php file.

<?php
require("db_conx.php");
$q = $_GET['q'];
$ans = $_GET['ans'];
$a = $_GET['a'];
$b = $_GET['b'];
$c = $_GET['c'];
$d = $_GET['d'];
$cor = $_GET['cor'];
$def = $_GET['def'];
$q_n = $_GET['q_n'];
$c_id = $_GET['c_id'];


$q = mysqli_escape_string($con, $q);
$ans = mysqli_escape_string($con, $ans);
$a = mysqli_escape_string($con, $a);
$b = mysqli_escape_string($con, $b);
$c = mysqli_escape_string($con, $c);
$d = mysqli_escape_string($con, $d);
$cor = mysqli_escape_string($con, $cor);
$def = mysqli_escape_string($con, $def);
$q_n = mysqli_escape_string($con, $q_n);
$c_id = mysqli_escape_string($con, $c_id);


/* Modify id for the system  */
$query = mysqli_query($con, "INSERT INTO course_quiz (course_id, quiz_name, question, des_answer, ChoiceA,
                                                      ChoiceB, ChoiceC, ChoiceD, correct, def)
                            VALUES ('$c_id', '$q_n', '$q', '$ans', '$a', '$b', '$c', '$d', '$cor', '$def')");
echo('Question has been saved');
/* header('Location: ../instr_home.php'); */

I also have an another ajax call(works perfect) in the same page, which I think the reason of the problem. Variables for XMLHttpRequest are named different as well.

Thank You in advance!

Just replaced ajax, by Jquery ajax,

Make sure all the URL variables are initialized before passing through url.

Change the $_GET method to $_POST in your PHP file.

Just Copy-Paste the solution.

  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
  <script type="text/javascript">      
  function ajax()
  {

  var urlString ="q="+ques+"&ans="+ans+"&a="+inp[0].value+"&b="+inp[2].value+"&c="+inp[4].value+"&d="+inp[6].value+"&cor="+checked+"&def="+input+"&q_n="+q_name+"&c_id="+c_id;

  $.ajax
  ({
  url: "ajax_js/q_ajax.php",
  type : "POST",
  cache : false,
  data : urlString,
  success: function(response)
  {
  alert(response);
  }
  });


  }

  </script>

In your PHP file,

 <?php
 require("db_conx.php");
 $q = $_POST['q'];
 $ans = $_POST['ans'];
 $a = $_POST['a'];
 $b = $_POST['b'];
 $c = $_POST['c'];
 $d = $_POST['d'];
 $cor = $_POST['cor'];
 $def = $_POST['def'];
 $q_n = $_POST['q_n'];
 $c_id = $_POST['c_id'];


 $q = mysqli_escape_string($con, $q);
 $ans = mysqli_escape_string($con, $ans);
 $a = mysqli_escape_string($con, $a);
 $b = mysqli_escape_string($con, $b);
 $c = mysqli_escape_string($con, $c);
 $d = mysqli_escape_string($con, $d);
 $cor = mysqli_escape_string($con, $cor);
 $def = mysqli_escape_string($con, $def);
 $q_n = mysqli_escape_string($con, $q_n);
 $c_id = mysqli_escape_string($con, $c_id);


 /* Modify id for the system  */
 $query = mysqli_query($con, "INSERT INTO course_quiz (course_id, quiz_name, question, des_answer, ChoiceA,
                                                       ChoiceB, ChoiceC, ChoiceD, correct, def)
                             VALUES ('$c_id', '$q_n', '$q', '$ans', '$a', '$b', '$c', '$d', '$cor', '$def')");
 echo('Question has been saved');
 /* header('Location: ../instr_home.php'); */
 ?>

Change you code with this and you find your error

request.onreadystatechange=function (){
    //if(request.readyState==4 && request.status==200){
        alert(request.responseText);
    //}
}
request.open("GET", url, false);
request.send();

</div>