我正在尝试使用三个字段执行查询。我有三个组合框,每个组合框都填充了一个字段值。我想使用从组合框中为每个字段选择的值进行查询。我想知道如何收集三个字段哪里条款?有什么想法吗?
sarah
问问题
913 次
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 回答