0

我正在尝试创建一个搜索系统,用户可以在其中返回以前进行的搜索。为了做到这一点,我使用 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*/
        }
4

0 回答 0