javascript - 删除功能对 MySQL 表不起作用?

标签 javascript jquery mysql node.js

我的删除按钮无法从表中删除条目。有什么想法吗?删除脚本显示在我的网络选项卡上,但是当我单击“删除”按钮时,它只是将我重定向到该页面。

这是我显示页面的获取路线

router.get('/', function(req, res){
    var callbackCount = 0;
    var context = {};
    context.jsscripts = ["deletepokemon.js"];
    var mysql = req.app.get('mysql');
    getPokemon(res, mysql, context, complete);
    getMoves(res, mysql, context, complete);
    function complete() {
        callbackCount++;
        if(callbackCount >= 2){
            res.render('pokemon', context);
        }
    }
});

这是我的删除路线

router.delete('/:id', function(req, res) {
    var mysql = req.app.get('mysql');
    var sql = "DELETE FROM pokemon WHERE id=?";
    var inserts = [req.params.id];
    sql = mysql.pool.query(sql, inserts, function(error, results, fields){
            if(error){
             res.write(JSON.stringify(error));
             res.status(400);
             res.end();
            } else{
                    res.status(202).end();
            }
        })
    })

这是我使用 jQuery 的删除脚本

function deletePokemon(id){
        $.ajax({
                url: '/pokemon/' + id,
                type: 'DELETE',
                success: function(result){
                  window.location.reload(true);
        }
     })
};

这是我的 Handlebars 文件来渲染它

<table id="table">
    <thead>
        <th>Pokemon Name   </th>
        <th>Evolution Level   </th>
        <th>Move Name   </th>
    </thead>
   <input type="text" class="search form-control" id="searchinput" placeholder="Pokemon Name">
   <input type="button" class="btn btn-primary" value="Search" onclick="getUsers({{searchinput}})">
        <br>
    <tbody>
        {{#each pokemon}}
        <tr>
            <td>{{pokemonname}}</td>
            <td>{{evolutionlevel}}</td>
            <td>{{movename}}</td>
            <td><button onclick="deletePokemon({{id}})">Delete</button></td>
        <td><a href="/pokemon/{{id}}">Update</a></td>
        </tr>
        {{/each}}
    </tbody>
    <form id="addpokemon" action="/pokemon" method="POST">
       Pokemon Name: <input type="text" name="pokemonname"><br>
       Evolution Level: <input type="text" name="evolutionlevel"><br>
       Move Name: <select name="movename">
        {{#each move}}
        <option value="{{id}}">{{primarymovename}}</option>
        {{/each}}
        </select><br>
        <input type="submit" value="Submit">
    </form>
</table>

最佳答案

/pokemon 是您的根网址吗?如果不是,在您的 ajax 调用中,您的 url 是 url: '/pokemon/' + id 但在您的 Node 路由器中您需要 '/id'。应该是

router.delete('/pokemon/:id', function(req, res) {
   ....
}

关于javascript - 删除功能对 MySQL 表不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47524019/

相关文章:

mysql - 在单个查询中多次使用相同的子查询

php - 在 PDO/MySQL 中获取同一行的下一列的下一个元素?

javascript - 在 Javascript 中将格式化字符串转换为整数

javascript - 避免重复的 onclick 语句

mysql - 请通过 MySQL 排序规则告诉我

jquery - 为菜单 2 级添加事件,hiliting 2 级菜单 jquery

Javascript 或 html - 滚动到可滚动 div 内的 div

javascript - 在前一个功能完成后运行另一个功能?

javascript - 获取tinymce中的单词数

javascript - 添加到集合时指定额外属性