0

我正在尝试使用三个字段执行查询。我有三个组合框,每个组合框都填充了一个字段值。我想使用从组合框中为每个字段选择的值进行查询。我想知道如何收集三个字段哪里条款?有什么想法吗?

4

2 回答 2

0
<select id="mySelect">
<option>Apple</option>
<option>Orange</option>
<option>Pineapple</option>
<option>Banana</option>
</select>

var si = document.getElementById("mySelect").selectedIndex;
var arrayOfOptionsy=document.getElementById("mySelect").options;
//alert("Index: " + arrayOfOptionsy[si].index + " is " + arrayOfOptionsy[si].text);

query.where = "fruit = '" + arrayOfOptionsy[si].text + "' AND not_gis = '"...
于 2013-05-13T23:24:31.923 回答
0

上面的答案非常好。我想强调一些处理这类事情的工具。

jQuery

jQuery 接口使在 JavaScript 中使用 DOM 变得更加简单。例如,假设您有一个表单:

<label>Latitude<input id="latitude" type="number" step=".01" min="-90" max="90 /></label>
<label>Longitutde<input id="longitutde" type="number" step=".01" min="-180" max="180" /></label>
<select id="radius">
    <option>1 km</option>
    <option>5 km</option>
    <option>20 km</option>
</select>

然后,您可以获取表单中的当前信息以用于构造 where 子句,如下所示:

var lat = $('#latitude').val();  // $('#latitude') is the element with id 'latitude'
var lon = $('#longitude').val(); // and .val() grabs the current value of that input
var rad = $('#radius').val();    // and this syntax works with various input elements

昏死

Knockout 框架允许您以声明方式将 DOM 元素链接到 JavaScript 变量,因此在 DOM 中更改它们会立即在 JavaScript 中更改它们。此外,您可以获取更改事件,以便在需要时重新处理数据。在此示例中,您可能希望在每次字段更改时查询数据库。这是如何做到的:

<label>Latitude<input data-bind="value: lat" type="number" step=".01" min="-90" max="90 /></label>
<label>Longitutde<input data-bind="value: lon" type="number" step=".01" min="-180" max="180" /></label>
<select data-bind="options: ['1 km', '5 km', '20 km'], value: rad"></select>

在 Knockout 中,您使用 'data-bind="value: var"' 来选择要绑定到 DOM 元素的变量。在 JavaScript 中,您有:

var queryModel = {          // we create the "data model" to be used in the DOM
    lat: ko.observable(0),  // and wrap each value in a ko.observable(); we can 
    lon: ko.observable(),   // assign default values or leave them empty
    rad: ko.observable(),
    query: ko.computed(function() {
        // query processing here; to access the variable values use this.lat(),
        // this.lon(), this.rad(); you can then access this variable in JavaScript
        // using queryModel.query()
    }, this)
};

queryModel.query.subscribe(function(query) {
    // this function will be called every time the query variable is recomputed; you
    // may add code here that would run this query every time the query updates
});

ko.bind('queryModel'); // and finally, we "bind" the data model to the DOM

虽然这显然比 jQuery 模型复杂一点,但它是一个强大的工具,因为它允许您在数据在 DOM 中更新时响应式地处理数据。

于 2013-05-14T14:43:47.723 回答