2010-09-14 69 views
0

好吧,我有一個jQuery的.post返回我需要它,但它沒有正確輸出。另一個基本的Javascript問題

這裏是我的代碼:

jQuery(document).ready(function($){ 


$('#project-for-support-ticket').change(function(){ 
    //Pass The value selected to the get_users_from_project_id() function 
    var projectSelected = $(this).val(); 
    if(projectSelected == 'NULL'){ 
    $('#users-of-project').empty(); 
    } 

    $.post('/wp-admin/admin-ajax.php', { 'selectedProject' : projectSelected, 'action' : 'support_ticket_ajax'}, 
       function(data) { 
    var newdata = jQuery.parseJSON(data); 
    var value = 'ID'; 
    var text = 'name'; 
    returnOptions(newdata, '#users-of-project', value, text); 
       }, "JSON" 
      ); 

}) 

$('#user-to-assign-project').change(function(){ 
    var UserSelected = $(this).val(); 
    if(UserSelected == 'none'){ 
    $('#user-type-to-assign-as').empty(); 
    } 

    $.post('/wp-admin/admin-ajax.php', { 'UserSelected' : UserSelected, 'action' : 'assign_project_ajax'}, 
       function(data) { 
    var newdata = jQuery.parseJSON(data); 
    var value = ''; 
    var text = ''; 
    returnOptions(newdata, '#user-type-to-assign-as', value, text); 
       }, "JSON" 
     ); 
}) 

function returnOptions(newdata, SelectToPopulate, value, text){ 
    //Empty the select box so we are not simply adding more to it! 
    $(SelectToPopulate).empty(); 

    //Run a for loop, the closest thing javascript easily has to a foreach loop 
    for (var i in newdata){ 
    if(!(value == '')){ 
    OptVal = newdata[i].value; 
    }else{ 
    OptVal = newdata[i]; 
    } 
    alert (OptVal); 
    if(!(text == '')){ 
    OptText = newdata[i].text; 
    }else{ 
    OptText = newdata[i]; 
    } 

    //And Append an 'Option' to the select tag 
    $(SelectToPopulate).append($('<option></option>').attr('value', OptVal).text(OptText)); 
    } 
} 
    }) 

的問題是在returnOptions功能,用戶到指定項目的正常使用,但對於項目的支持票我得到「未定義'當我提醒OptVal時,但如果我提醒newData [i] .name它會提醒正確的值。

任何人都可以看到我在做什麼錯?

乾杯 本

+1

我可以看到幾件事情開始。 1. OptVal在哪裏申報?它似乎不是本地的returnOptions。 2.元素的創建可以這樣完成:'$('

+0

「returnOptions」函數中的參數'value'和'text'背後的意圖是什麼? – 2010-09-14 02:10:59

+0

@gddc看一看該函數的開始:) – user260931 2010-09-14 02:24:24

回答

0

你好像還沒有宣佈optval的,因此未定義。在你的函數中returnOptions從下面的行開始 var OptVal; ,然後您應該能夠在沒有任何問題的情況下提醒OptVal。