NodeJS 和 mysql (POST req) 上的 jQuery AJAX 调用,用于依赖下拉列表

Posted

技术标签:

【中文标题】NodeJS 和 mysql (POST req) 上的 jQuery AJAX 调用,用于依赖下拉列表【英文标题】:jQuery AJAX call on NodeJS and mysql (POST req) for dependent dropdown 【发布时间】:2018-01-29 05:20:56 【问题描述】:

我试图从Node.js 中的mysql 数据库中获取依赖下拉列表。

我在互联网上搜索了很多依赖下拉列表,但没有 Node.js all is with php only。

html

<label class="field" >Site</label>
<select name="site" id="dropdown" >
    <option value="">- select -</option>
</select>
<label class="field" >Block</label>
<select name="block" id="dropdown1" >
    <option value="">- select -</option>
</select>

脚本

<script>
    $(document).ready(function()
    $.ajax(
        url : "/site_name",
        type : "GET",
        success : function(data)

            var len = data.length;

            console.log(data);
            $("#dropdown").empty();
            for(var i =0; i<len;i++)
            var value1 = data[i]['site_name'];
            var value2 = data[i]['site_id'];
                $("#dropdown").append("<option value='"+value2+"' >"+value1+"</option>");

            
        
    );
); 

    $("#dropdown").change(function()
    $.ajax(
        url : "/block_name",
        type : "GET",
        success : function(data)

            var len = data.length;

            console.log(data);
            $("#dropdown1").empty();
            for(var i =0; i<len;i++)
            var value1 = data[i]['block_name'];
            var value2 = data[i]['block_id'];
                $("#dropdown1").append("<option value='"+value2+"' >"+value1+"</option>");

            
        
    );
); 
</script>

在 SERVER.JS 中

app.get('/block_name', function (req,res)

    //var id=  req.body.site;
    var sql='SELECT  `block_name`,`block_id` FROM `tbl_block` ';
    connection.query(sql,function(err, result) 
        if (err) throw err;
        res.json(result);
    );
);

【问题讨论】:

那么您的代码的哪一部分导致了问题?您已经描述了您的要求,但没有描述您所面临的具体问题。一个明显的问题可能是,如果下拉列表是依赖的,那么您永远不会将第一个下拉列表的值发送到 block_name 服务器方法,并且查询不会考虑它。因此,值永远不会根据选择而改变。您需要将dropdown 的值发送到服务器,然后在您的SQL 查询中使用它来限制结果。 @ADyson 你很清楚我问了什么。但我不知道如何将下拉列表的第一个值发送到服务器并执行查询 我相信你可以谷歌如何通过 jQuery ajax 发送变量,以及如何在 nodeJS 中接收请求变量并处理它?这是一个通用过程,您不需要将搜索限制为特定于下拉列表的示例。你搜索过这种东西吗? @ADyson 我搜索了很多但我没有找到任何东西请建议一些链接或对我的代码做一些更改我真的需要它 您的搜索结果再好不过了。试试这个:google.co.uk/… 使用 $.ajax 发送变量 【参考方案1】:
app.get('/block_name/:id', function (req,res)

    //var id=  req.body.site;
    var sql='SELECT  `block_name`,`block_id` FROM `tbl_block` where id = req.params.id ';
    connection.query(sql,function(err, result) 
        if (err) throw err;
        res.json(result);
    );
);

【讨论】:

只有代码的答案总比没有好,但如果包含代码描述,解释为什么它解决了提问者的问题,答案会更有用。 ;)

以上是关于NodeJS 和 mysql (POST req) 上的 jQuery AJAX 调用,用于依赖下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS收发GET和POST请求

(转)NodeJS收发GET和POST请求

NodeJS获取GET和POST请求

POST 中的 nodejs/express 和二进制数据

Nodejs + express post get 参数获取小结

nodejs:app.use处理post请求