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. OptVal在哪裏申報?它似乎不是本地的returnOptions。 2.元素的創建可以這樣完成:'$('',{'value':OptVal})'。它保存對'attr'函數的調用,並且更容易擴展以包含多個屬性。另外,你能否提供你的回報數據樣本?它可能有助於診斷問題。 – 2010-09-14 02:00:41
「returnOptions」函數中的參數'value'和'text'背後的意圖是什麼? – 2010-09-14 02:10:59
@gddc看一看該函數的開始:) – user260931 2010-09-14 02:24:24