0
これに似た他の質問も見ましたが、私の問題を見つけたり解決したりできません。助けてください。mysqlとnodejsを使った更新クエリのER_PARSE_ERROR
私がやっているのは、クライアント側からサーバーに入力データを渡して、IDが一致する特定の行を更新できるようにすることです。私はIDをクエリに渡すためのさまざまな方法を試しましたが、私はまだER_PARSE_ERRORに終わっています。
ルート
app.post('/configuration_materials/editsend/:id', isLoggedIn, materialpricingTable.UPDATEMaterial);
クライアント/ jQueryとAJAX機能
$(function() {
$('body').on('click', '.SubmitEditMat', function() {
var materialIDedit = this.id.split('-')[1];
var clientMtrlApplication = $('#clientMtrlApplication');
var clientMtrlType = $('#clientMtrlType');
var clientMtrlSpec = $('#clientMtrlSpec');
var clientPricePerSheetORFt = $('#clientPricePerSheetORFt');
var clientSqFtofSheetORLen = $('#clientSqFtofSheetORLen');
var clientWtPerFt = $('#clientWtPerFt');
var clientWtPerItem = $('#clientWtPerItem');
var clientMtrlPricePerFt = $('#clientMtrlPricePerFt');
var clientMtrlPricePerLb = $('#clientMtrlPricePerLb');
var clientMtrlPricePerItem = $('#clientMtrlPricePerItem ');
var clientLaborHrsPerFt = $('#clientLaborHrsPerFt');
var clientLaborHrsPerItem = $('#clientLaborHrsPerItem');
var clientNotes = $('#clientNotes');
var divAddMatSuccess = $('#modifiedModalEditMat');
$.ajax({
url: '/configuration_materials/editsend/' + materialIDedit,
method: 'POST',
contentType: 'application/json',
data: JSON.stringify({
serverMtrlApplication: clientMtrlApplication.val(),
serverMtrlType: clientMtrlType.val(),
serverMtrlSpec: clientPricePerSheetORFt.val(),
serverPricePerSheetORFt: clientPricePerSheetORFt.val(),
serverSqFtofSheetORLen: clientSqFtofSheetORLen.val(),
serverWtPerFt: clientWtPerFt.val(),
serverWtPerItem: clientWtPerItem.val(),
serverMtrlPricePerFt: clientMtrlPricePerFt.val(),
serverMtrlPricePerLb: clientMtrlPricePerLb.val(),
serverMtrlPricePerItem: clientMtrlPricePerItem.val(),
serverLaborHrsPerFt: clientLaborHrsPerFt.val(),
serverLaborHrsPerItem: clientLaborHrsPerItem.val(),
serverNotes: clientNotes.val()
}),
success: function(response) {
console.log(response);
divAddMatSuccess.html('');
divAddMatSuccess.append('\
<div class="alert alert-success">\
<strong>Success! Updated: </strong> ' + clientMtrlApplication.val() + clientMtrlType.val() + clientMtrlSpec.val() +'\
</div>\
');
}
});
});
});
サーバー側、UPDATEMaterialおよびMySQLのクエリでmaterialpricingTable.js
//クエリ
exports.sqlEditMaterial = "UPDATE generictablenamepleaseignore SET ? where ID = ?;";
// UPDATEMaterial機能
exports.UPDATEMaterial = function (req, res) {
var weErrored = false;
var idOfMaterial = req.params.id;
var post = {
// NAMEINDATABASE: NAMEONFORM
Application: req.body.serverMtrlApplication,
MaterialType: req.body.serverMtrlType,
MtrlSpecs: req.body.serverMtrlSpec,
PricePerSheetORFt: req.body.serverPricePerSheetORFt,
SqFtofSheetORLength: req.body.serverSqFtofSheetORLen,
WtPerFt: req.body.serverWtPerFt,
WtPerItem: req.body.serverWtPerItem,
MtrlPricePerFt: req.body.serverMtrlPricePerFt,
MtrlPricePerLb: req.body.serverMtrlPricePerLb,
MtrlPricePerItem: req.body.serverMtrlPricePerItem,
LaborHrsPerFt: req.body.serverLaborHrsPerFt,
LaborHrsPerItem: req.body.serverLaborHrsPerItem,
Notes: req.body.serverNotes
};
var sendData = post + idOfMaterial;
mySqlController.connection.query(exports.sqlEditMaterial, sendData ,
function (err) {
if (err) {
console.log(err.code);
weErrored = true; // setting the error to true, this is used to display a message on the front end
}
res.send('Success!');
});
}
Ahhh。はい!それはうまくいった。情報、ありがとうございます。 – Slait