首页 / 浏览问题 / 其他 / 问题详情
leaflet的sql查询中,如何将图层等参数换成自己文本框所设定的值
5EXP 2022年08月23日

问题详细描述:

使用leaflet中的sql查询,在网页中设置一个文本框,想把文本框输入的值作为查询条件,但是一值实现不了,用document.getElementById('num2').value传递不了,代码没有报错也没有结果,是不是attributeFilter无法接收到text文本框传进来的值呢?

function query() {
            var sqlParam = new L.supermap.GetFeaturesBySQLParameters({
                queryParameter: {
                    name: "T1500_path_01@01",
                    attributeFilter: "Name='document.getElementById('num2').value'"
                },
                datasetNames: ["01:T1500_path_01"]
            });

3 个回答

额...  你这个是把document.getElementById('num2').value作为一个字符串传进去了呀,根本没有拿到对应文本框的值,要先定义一个变量去接受这个值  然后再传进去 或者document.getElementById('num2').value不用引号引起来
271EXP 2022年08月23日

因为我判断的条件是例如Name=‘李明’,所以这个引号必须要加吧?我按照您说的方法定义一个变量去接收,console,log(temp)打印出了我输入文本框的内容,还是地图上没有显示出查询,以下是部分代码,请您帮忙看一下

 <div>
        查询日期:<input type="text" id="num2"><br>
        <button class="button" onclick="b_Click()" value="确认">确认</button><br>
 </div>
<script>
var temp;
function b_Click() {
            temp=document.getElementById('num2').value;
            query();}
 function query() {
            console.log(temp);
            var sqlParam = new L.supermap.GetFeaturesBySQLParameters({
                queryParameter: {
                    name: "T1500_path_01@01",
                    attributeFilter: "Name='temp'"
                },
                datasetNames: ["01:T1500_path_01"]
            });
</script>

<script>
var temp;
function b_Click() {
            temp=document.getElementById('num2').value;
            console.log(temp)
}

</script>

这个输出看下呢
控制台输出了文本框的内容

您好,您可以设置一个string类型的变量,让它接收出入的文本,然后构造一个attributeFilter的变量,再传递给queryParameter。

var temp = "Name='";
temp += document.getElementById('num2').value;
temp += "'";
console.log(temp);
var sqlParam = new L.supermap.GetFeaturesBySQLParameters({
    queryParameter: {
        name: "T1500_path_01@01",
        attributeFilter: temp
    },
    datasetNames: ["01:T1500_path_01"]
});

希望可以为您提供帮助!

1,006EXP 2022年08月23日
太感谢您了!成功实现了!
先在外面拿到num2的值,再放到attributefilter里面吧。
346EXP 2022年08月23日
...