The select statement works as I've tested with hardcoded JSON. But when input passed from the ajax initiated html page, after the select statement, the page is not directed back to the ajax page. Do I have to replace this echo json_encode($display_string);
anything else?
Ajax call
$("document").ready(function(){
$(".form").submit(function(){
var data = {
"action": "test"
};
data = $(this).serialize() + "&" + $.param(data);
$.ajax({
type: "POST",
dataType: "json",
url: "search_subject.php", //Relative or absolute path to response.php file
data: data,
success: function(data) {
$(".the-return").html("<br />JSON: " + data.response );
alert("Form submitted successfully.
Returned json: " + data["json"]);
window.location='success.php';
}
});
return false;
});
});
php
<?php
if (is_ajax()) {
if (isset($_POST["action"]) && !empty($_POST["action"])) { //Checks if action value exists
$action = $_POST["action"];
switch($action) { //Switch case for value of action
case "test": test_function(); break;
}
}
}
//Function to check if the request is an AJAX request
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
function test_function(){
$return = $_POST;
//$return ='{"level":{"Upper Secondary":"3"},"sub":{"15":"","16":""},"rate2":{"15":"","16":"","17":"","18":"","19":"","20":"","21":"","22":"","23":"","24":"","25":"","26":"","27":"","28":""},"action":"test"}';
$return["json"] = json_encode($return);
// json_encode($return);
//
//below code to store in database
$data = json_decode($return["json"], true);
//var_dump($data); // Dump all data of the Array
$dbhost = "XXXXX";
$dbuser = "XXXXX";
$dbpass = "XXXXX";
$dbname = "users";
//Connect to MySQL Server
mysql_connect($dbhost, $dbuser, $dbpass);
//Select Database
mysql_select_db($dbname) or die(mysql_error());
// Retrieve data from Query String
$a=$data['sub'];
$b=$data['rate2'];
$subject_rate = array_intersect_key($b,$a);
foreach($subject_rate as $v=>$k)
{
$key[]=$v;
$value=$k;
//$query = "SELECT * FROM posts WHERE subid $key";
//Execute query
//$qry_result = mysql_query($query) or die(mysql_error());
}
$key2=implode(',',$key);
//echo "ids".$ids = join(',',$key2);
//build query
//echo $query = "SELECT * FROM posts WHERE subid IN $key2";
$query= "SELECT * FROM posts WHERE subid IN ('$key2')";
$qry_result = mysql_query($query) or die(mysql_error());
//Build Result String
$display_string = "<table>";
$display_string .= "<tr>";
$display_string .= "<th>Name</th>";
$display_string .= "<th>Phone</th>";
$display_string .= "<th>Pricing</th>";
$display_string .= "<th>Email</th>";
$display_string .= "</tr>";
// Insert a new row in the table for each person returned
while($row = mysql_fetch_array($qry_result)){
$display_string .= "<tr>";
$display_string .= "<td>$row[Name]</td>";
$display_string .= "<td>$row[Phone]</td>";
$display_string .= "<td>$row[pricing]</td>";
$display_string .= "<td>$row[Email]</td>";
$display_string .= "</tr>";
}
//echo "Query: " . $query . "<br />";
$display_string .= "</table>";
//$return["json"] = json_encode($return);
echo json_encode($display_string);
}
?>