【发布时间】:2019-06-28 12:26:48
【问题描述】:
我有一个包含一些卡片的应用程序,我只是添加了一个按钮来兑换卡片,如果点击它会删除卡片。我创建了一个数据库表来保存有关卡的信息以及客户 ID 和兑换日期;我希望程序检查用户是否已经使用过该卡(带有数据库信息),然后永久删除。
我尝试使用 jQuery '.remove()' 但如果您重新加载网页,卡片会再次出现。
- 按钮 - 2. AJAX 调用 - 3. 数据库 POST
<span class="buttonRedemp">
<button class="redddButt load-button2" data="Reedem Card">Reedem Card</button>
</span>
$(`#promotion-container .promo${i} .redddButt`).click(function(e){
$('#deletePromo').on('click', function(){
$(`#promotion-container .promo${i}`).remove();
}) // this button is coming from a pop up
$('#just-claimed-popup2').addClass('reveal');
var theDiv = document.getElementById("card-just-claimed");
var content = document.createTextNode(eventName);
theDiv.appendChild(content);
let dateReedem = moment().format('MM-DD-YYYY')
$.ajax({
type: 'POST',
url: '/api/promotions_redemption',
crossDomain: true,
dataType: 'json',
data: {
eventName : eventName,
dateReedem : dateReedem,
}
});
})
router.post('/promotions_redemption', function(req, res) {
let customerID = req.user.customer_id
let eventName = req.body.eventName
let dateReedem = req.body.dateReedem
// Inserts promotion card reedeem into rewards table
db.any(`INSERT INTO promotions_redemption (customer_id, event_name, date_claimed) values ($1, $2, $3)RETURNING customer_id`,[customerID, eventName, dateReedem])
.then(function() {
return res.json({'eventName': eventName})
})
.catch((err) =>{
console.log(err)
})
})
到目前为止,如果您单击按钮,我将获取数据库中的信息,并删除卡片(使用“.remove()”),但如果您重新加载页面,卡片会再次出现。我想添加一些逻辑来检查数据库中是否已经存在 eventName 和 customer id,然后删除该人的卡。
【问题讨论】:
-
如何显示数据库中的卡片?
-
我不完全明白你的问题。您说您已经有代码可以通过单击删除 div。现在你想编写一些在每次页面加载时运行的逻辑,并检查一些数据库信息并根据它调整上下文......然后只需编写逻辑代码。如果您遇到问题,我们随时为您提供帮助 :) 此外,您可能需要检查 JS 框架,例如“Vue”、“Angular”和“React”。他们需要一点时间才能进入,但是一旦你进入它,他们就很容易做你在这里做的事情:)
-
它可以工作,但如果你重新加载应用程序,它会再次出现,所以我希望它检查数据库以查看它是否已经存在信息,然后将其删除。我知道我喜欢 react 但这是建立在 node.js 上的
-
如果删除后一直出现,说明你的数据库查询不起作用。
-
我不想从数据库中删除,我希望它向数据库提交信息,然后删除那个人的 div。我什至已经尝试进行 Ajax 调用以获取我想要使用的信息,但是在您重新加载应用程序后 div 仍然出现。
标签: javascript jquery mysql node.js