我正在尝试创建一个搜索系统,用户可以返回之前进行的搜索。为了做到这一点,我使用php会话在他们返回搜索页面时重新创建他们的搜索。因为实际执行搜索的函数是在javascript中,所以我必须使用Ajax将适当的变量发布到PHP中的会话中,然后将其返回到javascript变量以重新启动搜索功能。
然而,当我尝试使用那些会话变量(传递给javascript)来重新激活搜索功能(并因此再次呈现相同的结果)时,该函数将不会触发,但是相同的函数将正常触发,即原始函数搜索。我检查过并且所有变量都是相同的,所以我不知道为什么函数不会触发。
我知道这不是函数的问题,因为原始搜索没有问题。这是我的代码。请帮忙。
Javascript
var sessSubj = '<?php echo $_SESSION['subject'];?>';
var sessLevel = '<?php echo $_SESSION['level'];?>';
var sessTopic = '<?php echo $_SESSION['topic'];?>';
var sessAddress = '<?php echo $_SESSION['address'];?>';
var sessSort = '<?php echo $_SESSION['sort'];?>';
if (sessLevel != "" && sessSubj != "") {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({
address: sessAddress
}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
center = results[0].geometry.location;
searchLocationsNear(center, sessLevel, sessSubj, sessTopic, sessSort);
}
});
}
function searchLocationsNear(center, level, subject, topic, sort) {
clearLocations();
if ($('div.pages')) {
$('div.pages').remove()
}
$.ajax({
type: 'GET',
url: "findlocations.php",
async: true,
dataType: "json",
data: {
"level": level,
"subject": subject,
"topic": topic,
"lat": center.lat(),
"lng": center.lng(),
"radius": 20,
"sort": sort
},
success: function (data, response) { /* do stuff*/
}