2016-11-26 1 views
0

Я работаю над скриптом, который использует функцию jQuery get для отправки информации на другую страницу и возвращает данные как предупреждение на текущей странице. Я пытаюсь отправить значение поля поиска из формы ввода (это работает), а также идентификатор коллектора, который является значением, генерируемым опцией, выбранной в раскрывающемся меню над формой поиска.Переменная область между функциями JS: переменная не определена

К сожалению, я продолжаю получать «collector_id is undefined error» при запуске скрипта. Я думаю, что у меня проблема с объемом переменной .. но попробовал множество опций и, похоже, не нашел решение, которое сохраняет значение collector_id для использования в функции get.

$(document).ready(function() { 

     $(".search-field").keyup(function() { 

//THIS FUNCTION UPDATES THE COLLECTOR ID VARIABLE FROM DROPDOWN MENU VALUE SELECTED BY USER 
$("select") 
    .change(function() { 
    var collector_id = ""; 
    $("select option:selected").each(function() { 
     collector_id += $(this).data('value') + " "; 
    }); 
    }) 
    .change(); 

//THIS FUNCTION DOES A SEARCH ON ANOTHER PHP SCRIPT PASSING search and collector_id values 
    if($(".search-field").val().length > 3) { 
    var search = $(".search-field").val(); 
    $.get("query-include.php" , {search: search, collector_id: collector_id}) 
    .done(function(data) { 
     alert("Data Loaded: " + data); 
    }); 
    } 
    }); 

    }); 
+0

Пожалуйста исправить intendation. Почти невозможно рассуждать о коде, который не имеет должным образом отступов. – Tomalak

+2

'collector_id' - переменная, привязанная к обработчику' change'. Нет никакого 'collector_id', определенного где-либо еще. –

ответ

1

вам просто нужно инициализировать collector_id за пределами изменения, так что это будет в объеме за $ .get

var collector_id = ""; 
$("select") 
.change(function() { 
    $("select option:selected").each(function() { 
     collector_id += $(this).data('value') + " "; 
    }); 
}) 
.change(); 

//THIS FUNCTION DOES A SEARCH ON ANOTHER PHP SCRIPT PASSING search and collector_id values 
if($(".search-field").val().length > 3) { 
    var search = $(".search-field").val(); 
    $.get("query-include.php" , {search: search, collector_id: collector_id}) 
    .done(function(data) { 
     alert("Data Loaded: " + data); 
    }); 
} 
}); 
+0

спасибо! работает сейчас. –