Javascript / Ajax успешный запрос на удаление записи из websql - PullRequest
0 голосов
/ 30 января 2012

Я использую следующий код для запроса к моей базе данных websql, чтобы узнать, есть ли какие-либо записи.

Если записи найдены, я использую ajax-запрос, чтобы отправить их на страницу asp, которая, в свою очередь, передает информацию о форме на сервер sql.

Пока все хорошо, но теперь я хочу удалить каждую из записей из базы данных WebSql только тогда, когда запрос ajax вернет успех.

Я не могу на всю жизнь разобраться с функциями javascript и областью действия правильно, когда они так сильно вложены (сейчас я пишу js / jquery только пару недель).

Я знаю, что мне нужно захватить идентификатор, который я установил в качестве переменной vID, а затем выполнить еще одну инструкцию sql для удаления записи, вложенной в критерии успеха моего вызова ajax. Я не могу получить VID для ссылки правильно, а затем я не знаю, как настроить вызов для выполнения SQL снова на основе этого.

function Web_SQL_Storage_Open_And_Check() {
    if (window.openDatabase) {
        var db = openDatabase("ER_Nonconformance", "1.0", "Non-conformance Report DB", 4 * 1024 * 1024); //creates our database if it does not exist at 4mb size
        var db2 = db.transaction(function(tx) {
          tx.executeSql("CREATE TABLE IF NOT EXISTS tbllog (ID INTEGER PRIMARY KEY ASC AUTOINCREMENT, DteOccur datetime, Pdetected nvarchar(50), DeptRaisedBy int, DeptResp int, NCDescrip nvarchar(255), NCCause nvarchar(255), NCImmediateAct nvarchar(255), NCLocation nvarchar(100), PNumOrRef nvarchar(30), EventCat int, ReportedEmailAddy nvarchar(100), Location_Category int)");
          tx.executeSql("SELECT * FROM tbllog", [], function(tx, result) {


                                if (result.rows.length > 0) {

                                alert("we need to submit")
                                for (var i = 0; i < result.rows.length; i++) {
                                //Submit values to the asp page using the below loop
                                var vID = (result.rows.item(i)['ID'])
                                var vPdetected = result.rows.item(i)['Pdetected']
                                var vDteOccur = result.rows.item(i)['DteOccur']
                                var vDeptRaisedBy = result.rows.item(i)['DeptRaisedBy']
                                var vDeptResp = result.rows.item(i)['DeptResp']
                                var vNCDescrip = result.rows.item(i)['NCDescrip']
                                var vNCCause = result.rows.item(i)['NCCause']
                                var vNCImmediateAct = result.rows.item(i)['NCImmediateAct']
                                var vNCLocation = result.rows.item(i)['NCLocation']
                                var vPNumOrRef = result.rows.item(i)['PNumOrRef']
                                var vEventCat = result.rows.item(i)['EventCat']
                                var vReportedEmailAddy = result.rows.item(i)['ReportedEmailAddy']
                                var vLocation_Category = result.rows.item(i)['Location_Category']

                                var request = $.ajax({
                                url: "untitled.asp",
                                type: "post",
                                data: {
                                DteOccur: vDteOccur,
                                Pdetected: vPdetected,
                                DeptRaisedBy: vDeptRaisedBy,
                                DeptResp: vDeptResp,
                                NCDescrip: vNCDescrip,
                                NCCause: vNCCause,
                                NCImmediateAct: vNCImmediateAct,
                                NCLocation: vNCLocation,
                                PNumOrRef: vPNumOrRef,
                                EventCat: vEventCat,
                                ReportedEmailAddy: vReportedEmailAddy,
                                Location_Category: vLocation_Category
                                },
                                dataType: "html"

                                }

                                );

                                request.done(function() { alert("done"); })
                                request.fail(function() { alert("error"); })
                                request.always(function() { alert("complete"); });


                                }



                                } 
                                else {
                                //no records found so do nothing
                                alert("do nothing")
                                } //end of if statement

            }, function(tx, error) {
                alert("error retrieving")
            })




          //tx.executeSql();


        });
    }

}

1 Ответ

0 голосов
/ 30 января 2012

Определите var vID внешнюю функцию, а не внутреннюю, и это даст вам правильную ссылку.

...