som 함수를 하나의 함수로 결합하는 데 문제가있었습니다. 나는 직장에서 보여줄 작은 시스템을 만들려고 노력하고있다. 종류가 개선 될 수있는 방법을 보여줍니다. 배포 용이 아닙니다.Javascript 및 JQuery와의 결합 함수
함수는 다음과 같습니다.
// To choose an errand or with a zero start a new errand.
function buildErrandBox(number)
{
$.ajax({
url: 'db/buildErrandBox.inc.php',
type:'POST',
dataType: 'json',
data: { customerNumber: $("#customerNumber").val(), errandNumber: number },
success: function(build){ $('#newErrandsBoxResult').empty(); $('#newErrandsBoxResult').append(build.buildForm); $('#newErrandsBoxTextResult').empty(); $('#newErrandsBoxTextResult').append(build.buildText); showMinorContent('#newErrands'); $('#errandArea').val(build.area); $('#errandGroup').val(build.group); $('#errandType').val(build.type); escalateOptions(); getEscalationGroups(); },
error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); }
});
}
// To save changes on a errand.
function saveErrand()
{
$.ajax({
url: 'db/saveErrandsForCustomer.inc.php',
type:'POST',
dataType: 'json',
data: { id: $("#errandID").val(),
telephone: $("#errandTelephoneNumber").val(),
email: $("#errandEmail").val(),
area: $("#errandArea").val(),
group: $("#errandGroup").val(),
type: $("#errandType").val()
},
success: function(output_string){ showCustomerErrands(); },
error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); }
});
}
// To save a new note on an errand.
function saveTextForErrand()
{
$.ajax({
url: 'db/saveErrandsText.inc.php',
type:'POST',
dataType: 'json',
data: { id: $("#errandID").val(), text: $("#newTextForErrandTextArea").val() },
success: function(output_string){ buildErrandBox($("#errandID").val()); },
error: function (xhr, ajaxOptions, thrownError) { alert(xhr.status); alert(thrownError); }
});
}
다음은 웹 페이지의 버튼을 사용할 때 작동하는 세 가지 개별 기능입니다. 새로운 심부름을 시작하려면 먼저 클릭하십시오. 그것이 어떤 유형의 심부름인지를 변경합니다. 메모를 작성하십시오. 그리고 심부름을 저장하십시오. 모두 잘 작동합니다.
배경에서 빌드 심부름 기능은 입력 상자 전체를 구성하고 심부름을 표시하도록 선택합니다. 그러나 심부름을 저장하는 다음 기능은 심부름 번호를 인식하고 심부름을 데이터베이스에 저장합니다. 내가
아래function preMadeErrand(area, group, type, text, servicetext)
{
buildErrandBox(0);
alert($("#errandID").val());
$('#errandArea').val(area);
changeErrandBoxes();
$("#errandGroup").val(group);
changeErrandBoxes();
$("#errandType").val(type);
$("#newTextForErrandTextArea").val(servicetext);
saveTextForErrand();
$("#newTextForErrandTextArea").val(text);
saveTextForErrand();
alert($("#errandID").val());
saveErrand();
}
처럼이 결합 할 때
는하지만 errandID는 정의된다. 어떤 아이디어?
업데이트!
기능의 시작 부분에 경고가 표시되면 작동합니다. 상자를 만들기위한 함수가 errandID를 사용하기 전에 완료되지 않은 것 같습니다. 두 번 경고하면 두 번째 경고가 나옵니다.
계속하기 전에 buildErrandBox (0)와 같은 실행을 끝내는 방법이 있습니까?
AJAX의'A'는 비동기를 의미합니다. –