从jquery发送和处理关联数组到php

时间:2016-06-07 13:44:11

标签: javascript php jquery ajax

我有一个网页中某些设备的过滤器,由复选框组成。只要单击其中一个复选框,我就会调用一个函数,该函数会向对象添加复选框的值。我想通过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

提前感谢您的帮助!

1 个答案:

答案 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 Bobbyyour script is at risk for SQL Injection Attacks.了解preparedMySQLi语句。即使escaping the string也不安全!