데이터베이스의 내용을 listview로 먼저 표시하는 방법을 작성했으며 listview를 클릭하면 학생 이름을 입력하는 팝업이 표시됩니다. 이름은 내가 추가하는 동안데이터베이스에 삽입하는 동안 예기치 않은 동작이 발생했습니다.
$('#storedList').children('li').off('click').on('click', function() {
name = $.trim($(this).text());
$("#existing_Name").popup('open');
$('#exisitng_Namebutton').on('click', function(e) {
var existname = document.getElementById('existingname');
createname = $.trim(existname.value);
//});
if(createname.length!=0){
db.transaction(function(tx){
tx.executeSql('SELECT * FROM SCHOOL WHERE Std_name="' + name + '" and CreatedDate="'+createname+'" ', [] ,CheckingAllignSuccess,errorCB);
});
}
else{
alert("please enter the value");
}
});
});
}
}
function Insertdbexisiting(tx) {
tx.executeSql('INSERT INTO SCHOOL (Std_name, CreatedDate) VALUES ("' + name + '","' + createname + '")');
}
function successCBexisting(){
Displaylist();
//window.open("list.html#Homelist");
$.mobile.changePage("#Homelist", {
transition: "slide",
reverse: false,
});
}
var CheckingAllignSuccess = function(tx, resultallign){
if(resultallign.rows.length == 0){
db.transaction(Insertdbexisiting, errorCB, successCBexisting);
}else
alert("Student name already exists");
}
이 잘 작동 내가 데이터베이스에 날짜를 기록합니다 이름이 이미 다른 존재라고 알려줍니다있는 경우 내가, 이름이 존재하는지 여부를 데이터베이스에서 확인합니다 학생의 이름을 입력하면
최초의 값
두 번째 값이 없는데도 "학생 이름이 이미 있습니다"라는 경고 메시지가 나타납니다.
내가 디버깅 한 경우 db.transaction(function(tx){ tx.executeSql('SELECT * FROM SCHOOL WHERE Std_name="' + name + '" and CreatedDate="'+createname+'" ', [] ,CheckingAllignSuccess,errorCB); });
은 두 번째 데이터를 삽입하는 경우 2 회 호출합니다. 세 번째로 데이터를 삽입하는 경우 3 번 호출합니다.
내가 뭘하고있는 실수입니까?. 나는 그것을 어떻게 막을 것인가?
감사합니다 :)