【发布时间】:2011-07-09 14:34:42
【问题描述】:
我的网站上有一个处理价格范围的 jQueryUI 滑块。
我在 mysql 中有一个产品表,其中包含各种条目。
我正在使用滑块过滤结果,但我需要根据数据库中的记录设置最低和最高价格。
我应该只在我的 html 中生成(使用 php)包含最小值和最大值的隐藏字段,然后使用 jQuery 来获取它们吗?或者有没有更好的方法来实现这一点,也许使用 AJAX?
谢谢
【问题讨论】:
我的网站上有一个处理价格范围的 jQueryUI 滑块。
我在 mysql 中有一个产品表,其中包含各种条目。
我正在使用滑块过滤结果,但我需要根据数据库中的记录设置最低和最高价格。
我应该只在我的 html 中生成(使用 php)包含最小值和最大值的隐藏字段,然后使用 jQuery 来获取它们吗?或者有没有更好的方法来实现这一点,也许使用 AJAX?
谢谢
【问题讨论】:
您描述的任何一种方式都可以完成工作,我可能会选择隐藏字段。
另一种选择可能是让您的 php 将值直接放入您的 javascript 文件中。
您只需要更改 php 文件中的标头即可让浏览器将输出读取为 javascript。
这样就可以了。
Header("content-type: application/x-javascript");
您可以通过 php 在 javascript 中设置值(就像在任何其他 php 文件中一样)。
将它包含在您的页面上,就像您将任何其他 javascript 文件和工作一样,它简单而动态。 :)
【讨论】:
如果您关心可访问性,最安全的方法是提供表单元素,然后使用 Javascript 将其隐藏,这样没有 javascript 的用户仍然可以使用您的网站。然后您可以添加 AJAX 更新功能。
如果页面是动态的,你应该使用表单。
【讨论】:
使用 php 脚本获取我们的结果并将其输出为 JSON,如下所示:
<?php
$sql = 'SELECT MAX(price) as max, MIN(price) as min FROM products';
// .. do query, get row ...
echo(json_encode(array(
"max"=>$max,
"min"=>$min
)));
?>
然后使用 $.getJSON 或 $.ajax (jQuery) 获取结果并在滑块中使用它们,如下所示:
<script type="text/javascript">
$(document).ready(function() {
var max, min;
$.ajax({
url: "script.php",
dataType: "json",
async: false,
success: function(data) {
data = data[0];
max = data.max;
min = data.min;
}
});
$.slider({
max: max,
min: min
});
});
</script>
这是快速编写且未经测试的,但我希望你能得到全面的想法;)
【讨论】: