2016-11-11 2 views
0

Ich habe eine Funktion, die eine Quickbase-RecordID und Feld-ID und löscht alle Datei mit diesem Feld verbunden. Erstens, die Funktion:Generieren Schlüsselname basierend auf Wert an Funktion übergeben

function deleteFiles(recid,fldid) { 

    var apptoken = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 
    $.ajaxSetup({data: {apptoken: apptoken}}); 

    var dbid = "xxxxxxxxx"; 

    var promise = $.post(dbid, { 
     act: "API_EditRecord", 
     rid: recid, 
     _fid_NN: "", 
     delfile_fid_NN: "1" 
    }); 

    $.when(promise).then(function(xml){ 
     console.dirxml(xml); 
    }); 
} 

wo "NN" gleich die FeldID (fldid) übergeben werden muss. Ich habe versucht, die fldid auf diese zwei Schlüsselnamen zu verketten, aber das hat nicht funktioniert. Ich habe viele ähnliche Fragen gesehen, die vorschlagen, Objekte zu erstellen, etc., aber diese funktionieren auch nicht in meiner Situation. Die Frage ist also, wie kann ich diese Schlüsselnamen dynamisch ändern, so dass QB glücklich ist und die Dateien gelöscht werden? Vielen Dank!

+0

bewegen Sie Objektliteral aus dem Aufruf, es oben platzieren und es einen var Namen geben. Verwenden Sie dann Syntax wie 'myObject [" delfile_fid _ "+ myNN] = 1;' übergeben Sie dann 'myObject' anstelle des Literals. – dandavis

+0

Schätzen Sie die Antwort. Ich bekam einen Fehler, dass GPicazos Antwort für mich klar wurde. Prost! – pixelsandcode

+0

froh, GPicazo helfen Ihnen helfen;) – dandavis

Antwort

0

Versuchen Sie Folgendes:

function deleteFiles(recid,fldid) { 
    var apptoken = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 
    $.ajaxSetup({data: {apptoken: apptoken}}); 

    var dbid = "xxxxxxxxx"; 
    var payload = { 
     act: "API_EditRecord", 
     rid: recid 
    }; 

    payload['_fid_' + fldid] = ''; 
    payload['delfile_fid_' + fldid] = '1'; 

    var promise = $.post(dbid, payload); 

    $.when(promise).then(function(xml){ 
     console.dirxml(xml); 
    }); 
} 
+0

Brilliant! Danke - hat perfekt funktioniert. – pixelsandcode

0

Sie können auch diese mit ES6 tun, wie unten kennzeichnet.

function deleteFiles(recid, fldid) { 
 

 
    var apptoken = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 
 
    $.ajaxSetup({ 
 
    data: { 
 
     apptoken: apptoken 
 
    } 
 
    }); 
 

 
    var dbid = "xxxxxxxxx"; 
 

 
    var promise = $.post(dbid, { 
 
    act: "API_EditRecord", 
 
    rid: recid, 
 
    ['_fid_' + fldid]: "", 
 
    ['delfile_fid_' + fldid]: "1" 
 
    }); 
 

 
    $.when(promise).then(function(xml) { 
 
    console.dirxml(xml); 
 
    }); 
 
}

+0

guten Punkt, danke für die Erinnerung. – dandavis

Verwandte Themen