我有一个网页中某些设备的过滤器,由复选框组成。只要单击其中一个复选框,我就会调用一个函数,该函数会向对象添加复选框的值。我想通过ajax将此对象发送到php文件,并使用它来执行一些MySQL查询,然后从php返回结果并在页面上显示它们。问题是,我错过了一些东西,因为我一直在我的js中得到一个解析错误。
这是我的代码: 设备filter.js
/* - IPAD LANDSCAPE - */
@media screen and (max-width: 1024px) and (orientation: landscape){
header{
background-size: 28vw 30vh, 34vw 38vh;
background-position: right 24vw top 3.5vh, right 21vw top 1vh;
}
header object{
left:16vw;
width:18vw !important;
}
header p{
font-size:14px;
top:16vh;
left:-2vw;
}
}
/* - IPAD PORTRAIT - */
@media screen and (max-width: 768px) and (orientation: portrait){
header{
background-size: 28vw 30vh, 34vw 38vh;
background-position: right 28vw top 3.5vh, right 17vw top 1vh;
}
header object{
left:10vw;
width:24vw !important;
}
header p{
font-size:20px;
top:10vh;
left:-2vw;
}
}
/* - PHONE LANDSCAPE - */
@media screen and (max-width: 750px) and (orientation: landscape){
/*...*/
}
/* - PHONE PORTRAIT - */
@media screen and (max-width: 450px) and (orientation: portrait){
/*...*/
}
filtere器件用query.php
orientation
提前感谢您的帮助!
答案 0 :(得分:2)
你有一些拼写错误,首先是在jQuery中:
$(document).ready(function() {
$('#example').multiselect({
onChange: function(option, checked, select) {
alert('Changed option ' + $(option).val() + '.');
}
});
});
应该是:
if(re.lenght==0){
然后在PHP中,您在查询中使用列名称的引号。那些应该被移除或更好,但回来打勾:
if(re.length==0){// note the correct spelling of length
更重要的是......
正如你所描述的那样,一个物体没有长度。它会以$query = " SELECT * FROM `devices` WHERE `Brand` = '$brand' AND `Cost` = '$cost' AND `OS` = '$os' ";
的形式返回。为了找到你需要计算密钥的长度:
undefined
正如你声明的那样,对象if(Object.keys(re).length == 0){...
已经有3个密钥,长度为3.检查长度为0是浪费时间。
Little Bobby说your script is at risk for SQL Injection Attacks.了解prepared的MySQLi语句。即使escaping the string也不安全!