2013-07-29 3 views
0

업데이트 :이 코드는 불만입니다. 여기에서 문제의 근원은 문자열을 연결하여 변수의 이름을 다시 작성하고 이 마술처럼 그 변수를으로 바꾼다고 가정합니다. 나는 배울 것이 많았습니다. 또한 함수에 모호한 수의 옵션을 전달하는 더 좋은 방법은 JSON을 사용하는 것입니다.TAFFYdb : 함수에 옵션을 전달하는 중

var availableTimes, 
    selected_unit, 
    selected_unit_number; 

function createTimePicker(machineNumber){ 
    availableTimes = machineNumber({booked:"no"}).select("time"); 
    for (i=0;i<availableTimes.length;i++){ 
     $('<option/>').val(availableTimes[i]).html(availableTimes[i]).appendTo('#signin_start_time'); 
    } 
} 

$(function() { 
    $('body').on('click', '#cybex_arctrainer_button', function() { 
     selected_unit = "cybex_arctrainer"; 
    }); 

    $('body').on('change', '#signin_unit_number_selector', function() { 
     selected_unit_number = $("#signin_unit_number_selector option:selected").text(); 
     unit_plus_number = selected_unit+selected_unit_number; 
     createTimePicker(unit_plus_number); 
    }); 
}); 

몇 가지 : 데이터베이스가 작동합니다. createTimePicker(cybex_arctrainer1)을 실행하면 availableTimes 변수가 채워집니다. 문제는 selected_unit+selected_unit_number을 조합하여 createTimePicker에 전달하는 것 같습니다. 여기

+1

function이 마치 createTimePicker()에서 machineNumber가 호출되지만 사용자는 두 가지 조건을 충족시킵니다. cated vars는 결코 기능이 될 수 없습니다 ... – dandavis

답변

1

:

machineNumber({booked:"no"}) 

machineNumber는 문자열이지만, 당신은 함수 인 것처럼 호출을 시도하고 있습니다. 대신에, 당신은 당신이

createTimePicker(cybex_arctrainer1); 

을 실행하면 말

someVar = 'bob'; 
someVar(); 

뭔가를 할 경우 동일한 오류가 발생합니다하지만 코드는 인수로 변수cybex_arctrainer1createTimePicker를 호출하지 않습니다

createTimePicker('cybex_arctrainer1'); 
+0

고맙습니다. 필자가 볼 수있는 유일한 해결책은'createTimePicker'에 대한 각 변수 호출에 대한 함수를 정의하는 것입니다. 이것을 구현하는 우아한 방법이 없습니까? –

+1

TAFFYdb를 호출하는 함수에 변수를 전달하려는 사람은 자바 스크립트 객체를 사용하는 것이 트릭입니다. 데이터베이스를 호출하는 것은 축 어적으로 작성되어야합니다 (위에서 설명한대로). 하지만 행, 열 및 입력을 객체로 전달할 수 있습니다. –

관련 문제