2016-11-26 118 views
0

我正在使用jQuery get腳本函數將信息發送到另一個頁面,並將數據作爲當前頁面上的警報返回。我試圖從輸入表單(此工作)發送搜索字段值,以及收集器ID,這是通過在搜索表單上方的下拉菜單中選擇的選項生成的值。JS函數之間的變量作用域:變量未定義

不幸的是,當我運行腳本時,我總是收到「collector_id是未定義的錯誤」。我想我有一個變量的範圍問題..但嘗試了很多選擇,似乎無法找到解決方案,它保留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,所以這將是在範圍爲$不用彷徨

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

謝謝!現在工作。 –