Sunday, June 2, 2024
 Popular · Latest · Hot · Upcoming
-6
rated 0 times [  0] [ 6]  / answers: 1 / hits: 27614  / 9 Years ago, wed, april 22, 2015, 12:00:00

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!


More From » php

 Answers
15

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'); */
?>

[#66946] Tuesday, April 21, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
irvingcarloe

Total Points: 677
Total Questions: 109
Total Answers: 96

Location: Svalbard and Jan Mayen
Member since Sun, Sep 25, 2022
2 Years ago
irvingcarloe questions
Wed, Mar 31, 21, 00:00, 3 Years ago
Tue, Aug 4, 20, 00:00, 4 Years ago
Fri, Jul 3, 20, 00:00, 4 Years ago
;