Я пытаюсь выполнить фильтрацию с помощью раскрывающегося списка, используя PHP, AJAX и JS / jQuery, я не уверен, где я ошибаюсь. У меня есть 3 местоположения, по которым я хочу отфильтровать свою базу данных MYSQl. У меня уже есть свои события для отображения через другой файл php и ajax, но я разделил файлы, поэтому этот предназначен для случаев, когда выбрано местоположение и нажата кнопка поиска.
HTML
<div class="events">
<form method="POST" id="eventForm">
Filter By Location<br/>
<select name="locations" id="locations" value="locations">
<option value="Leeds">Leeds</option>
<option value="Newcastle">Newcastle</option>
<option value="London">London</option>
</select>
<input type="submit" name="submit" value="Search"/>
</form>
<div class="eventname"><!--obj.eventname--></div>
<div class="date"><!--obj.date--></div>
<div class="time"><!--obj.time--></div>
<div class="location"><!--obj.location--></div>
<p id="error" class="errormessage"></p>
<p id="allevents" class="postmessage"></p>
</div>
PHP
<?php
require_once('checklog.php');
require_once("db_connect.php");
require_once("functions.php");
//Query the database
if($_POST['value'] == 'Leeds') {
// query to get all Leeds events
$query = mysql_query("SELECT * FROM events WHERE location='Leeds'");
}
elseif($_POST['value'] == 'Newcastle') {
// query to get all Newcastle events
$query = mysql_query("SELECT * FROM events WHERE location='Newcastle'");
}
elseif($_POST['value'] == 'London') {
// query to get all London events
$query = mysql_query("SELECT * FROM events WHERE location='London'");
}
else {
// query to get all events
$query = mysql_query("SELECT eventname, date, time, location FROM events ORDER BY eventname");
}
//fetch the result
while($row = mysqli_fetch_array($query)){
$filter[] = $row;
}
mysqli_free_result($query);
require_once("db_close.php");
//echo $query;
echo json_encode($filter);
?>
JS
// When post button is clicked
$(document).ready(function() {
var events = $("#eventPost");
$("#eventPost").on('submit', function(event) {
event.preventDefault();
var locations = document.getElementById("locations").value;
var events = new FormData(this);
if (events) {
// Call Ajax
$.ajax({
type: 'POST',
url: 'filterevents.php',
data: event,
processData: false,
contentType: false,
success: function(result) {
console.log(result);
var arr = JSON.parse(result);
for(var i = 0; i < arr.length; i++) {
var obj = arr[i];
var output = document.getElementById("allevents");
output.innerHTML += '<div class="comment-container"><div class="eventname">'+obj.eventname+'</div><div class="date">'+obj.date+'</div><div class="time">'+obj.time+'</div><div class="location">'+obj.location+'</div></div>';
}
}
});
} else {
document.getElementById("error").innerHTML = "Please Choose A Location";
}
return false;
});
});