ajax商品筛选功能如何进行判断 本帖最后由 q5975166 于 2014-07-07 19:49:42 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $peistr 這個可以打印出來看看嗎? 如果选择了 209的子项打印$peistr的结果Array ( [0] => 208[1] => [2] => [3] => [4] =>[5] =>[6] => ) 打印$liestr的结果Array ( [0] => 209 [1] => [2] => [3] => [4] => [5] => [6] => ) 选择了 209的子项之后,再选择30的子项打印$peistr的结果Array ( [0] => 208[1] => [2] => 6[3] => [4] =>[5] =>[6] => ) 打印$liestr的结果Array ( [0] => 209 [1] => [2] => 30 [3] => [4] => [5] => [6] => ) 数组里最后两个,也就是键名是5,6的,是没用的,也就是为什么在for循环里要减2。其实商品筛选里只有5个选项,下面再分子项。按我这么来选的话符合条件的应该只有id为3的。 我上面写的这个条件if($liestr[$i]==$dddvalue){/ $strpei2.=$dvalue['id'].",";} 是把所有的符合条件的都算了进去也就是208的子项,id为1也有,id为3的也有。所有他把这两个id的数据都查了出来 我想到了一个思路,就是$peistr 的数组接收第一次时,只有一个索引有值。接收第二次时,有两个索引有值。那么就可以判断第一次接收的时候,就判断这一个值。第二次接收的时候,就同时判断两个值。以此类推。但是具体怎么写还没想出来 还有一个想法是 接收第一次时,符合条件的产品的id就会加入条件里。接收第二次时,如果在原来的id里有的话,也就是增加了的话。那么就把该条ID加入条件里 我把判断改了一下if($liestr[$i]==$dddvalue){ $strpei2.=$dvalue['id'].",";} $where.="$liestr[$i]==$dddvalue &&"; if($i==(count($peistr)-2)){ $where= substr($where,0,-2); } if($where){ $strpei2.=$dvalue['id'].","; }但是这样的话,$where他是一个字符串来放到if里判断的。不能进行判断处理 无论是什么$where都是1。这只是一个思路,你看看吧 我又想到了一个方法,把子项的id放到一个字段里,用FIND_IN_SET来查询,每查询一次后面就加上 and FIND_IN_SET ,把接收到的子项id在字段里查询,这样就OK了。 如何卸载PHP 递归的问题~~~~救命! IIS作为PHP的代理服务器,这时候PHP站点的根目录怎么到?因为这时的根目录是IIS的一个虚拟路径 请问登陆后跳回之前浏览的页面是怎么做到的 PHP 多个按钮返回值的问题 那位兄弟有好的判断浏览器的php函数 问一个关于客户端关闭页面后PHP执行情况的问题 Can't connect to MySQL server on .......' (10048) 关于文本操作的几个问题~@~ php接收form提交过来的json,获取后,如何解析? 求助PHP 正则 php发送注册邮件,邮件收到后变纯html文本了
打印$peistr的结果
Array (
[0] => 208
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
)
打印$liestr的结果
Array (
[0] => 209
[1] =>
[2] =>
[3] =>
[4] =>
[5] =>
[6] =>
)
选择了 209的子项之后,再选择30的子项
打印$peistr的结果
Array (
[0] => 208
[1] =>
[2] => 6
[3] =>
[4] =>
[5] =>
[6] =>
)
打印$liestr的结果
Array (
[0] => 209
[1] =>
[2] => 30
[3] =>
[4] =>
[5] =>
[6] =>
)
数组里最后两个,也就是键名是5,6的,是没用的,也就是为什么在for循环里要减2。其实商品筛选里只有5个选项,下面再分子项。按我这么来选的话符合条件的应该只有id为3的。
我上面写的这个条件
if($liestr[$i]==$dddvalue){/
$strpei2.=$dvalue['id'].",";
}
是把所有的符合条件的都算了进去
也就是208的子项,id为1也有,id为3的也有。所有他把这两个id的数据都查了出来
if($liestr[$i]==$dddvalue){
$strpei2.=$dvalue['id'].",";
}
$where.="$liestr[$i]==$dddvalue &&";
if($i==(count($peistr)-2)){
$where= substr($where,0,-2);
}
if($where){
$strpei2.=$dvalue['id'].",";
}但是这样的话,$where他是一个字符串来放到if里判断的。不能进行判断处理 无论是什么$where都是1。这只是一个思路,你看看吧