逐个品牌展示产品阵列

时间:2014-04-22 14:52:12

标签: javascript php jquery html css

我有一个代码,我想从数组中显示产品列表。 我从n个品牌中获得了大约1000种产品.n可以是1,2,3..etc。 我想展示一个品牌的2个产品,然后展示来自第二个品牌的2个产品,然后展示来自下一个品牌的2个产品等等,它应该在显示时重复显示..

Homepage.php

<html>
<head>
<title>Insert title here</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<style type="text/css">
#image{
width:250px;
height:250px;
border:1px solid black;
}
</style>
</head>
<body>

<script type="text/javascript">
    function get_check_value() {
        var c_value = [];

        $('input[name="brand"]:checked').each(function () {
            c_value.push(this.value);
        });
        return c_value.join(',');

    }
    function get_disc_value(){
    var d_value=[];
        $('input[name="discount"]:checked').each(function () {
            d_value.push(this.value);
        });
        return d_value.join(',');
        }

    $(document).ready(function(){
   checkboxValidate = function (e) {
   if(e)e.preventDefault();
    //alert("hi");
        //var os = $('#originState').val();
       //var c = $('#commodity').val();
        //var ds = $('#destState').val();
        var ser = get_check_value();
        var disc=get_disc_value();
        //var queryString = "os=" + os;
        var data = "?ser=" + ser;
        var queryString = "&ser=" + ser;
       // alert(ser);
       $.ajax({
       //alert("ajax");
        type: "POST",
        url: "sortingajax.php",
        data: {ser:ser,disc:disc},
        dataType :  'html',
        success: function (b) {
           // alert(a+' ok. '+b)
            $('#results').html(b);
            console.log(b);
        }
    });

    } 
    $( "[type=checkbox]" ).change(checkboxValidate);

    checkboxValidate();
});
</script>


brand
    <input type="checkbox" name="brand" value="Sunbaby" id="check" />Sunbaby
    <br/>
    <input type="checkbox" name="brand" value="Advance Baby" id="check"/>Advance Baby
    <br/>
    store
    <br/>
    <input type="checkbox" name="discount" value="10" />10
    <br/>
    <input type="checkbox" name="discount" value="20" />20
    <br/>
    <input type="checkbox" name="discount" value="30" />30
    <br/>


<button id="btnSubmit">sort</button>
<div id="image">
<img src="http://img5a.flixcart.com/image/sunglass/4/u/y/mb-d4-09b-miami-blues-free-size-275x275-imadzkhuchryqjgp.jpeg" width="250px" height="250px"/>
</div>
<div id="results">
sdfsdfsdfsdfdsfgsdgsbsfgvf
</div>
</body>
</html>

sortingajax.php

<?php

include('connection.php');
$query=$_POST['ser'];

$query2=$_POST['disc'];


$query=explode(",",$query);
$query = array_filter($query);
$query2=explode(",",$query2);
$query2 = array_filter($query2);
$result=count($query);
$result1=count($query1);
//echo $result;
echo $query;
echo $query1;
echo $result1;
$parts = array();
$brandarray=array();
$discarray=array();
$limit = 10;
    $offset = 0;
    foreach( $query as $queryword ){
    $brandarray[] = '`BRAND` LIKE "%'.$queryword.'%"';

}
foreach( $query2 as $discword ){
    $discarray[] = '`DPERCENT` < "'.$discword.'"';

}
                         “/&GT;                                       

我想首先展示一个品牌的2个产品,然后从第二个品牌展示2个产品,然后展示下一个品牌。但根据上面的代码,它显示来自一个品牌的所有产品,然后展示下一个品牌....请指导我如何按品牌更改上述代码产品清单品牌..

3 个答案:

答案 0 :(得分:0)

如果你在这样的mysql查询中插入_POST变量,你将立即被黑客攻击:

'`BRAND` LIKE "%'.$queryword.'%"';

答案 1 :(得分:0)

基于对代码的快速概述,您似乎将每个产品的第一个元素添加到数组中,然后是第二个元素,然后是第三个元素等等,直到达到最高数量。

尝试改为,首先将max限制为仅2而不是max(所以在这种情况下,$ highest_number应该= 2) 第二,添加1个品牌,然后是下一个,然后是下一个,而不是一次性,除非你正在处理它,否则其他方式将交织每个品牌。我不知道那是不是你想要的?

这有帮助吗?

答案 2 :(得分:0)

我花了一点时间查看您的代码,并不完全确定它是如何工作的。似乎必须有一个更简单的方法来做到这一点。一旦它到达柜台,你能启动一个计数器并切断你的循环吗?

$i = 0;
$all_products = array();

while($row = mysql_fetch_array($firstsql3)) {

    if (++$i <= 2) {

        // DO YOUR STUFF HERE
        $product_name = $row['product_name']; // GET THE PRODUCT NAME FROM THE DB
        $product_color = $row['product_color'];
        $product_size = $row['product_size'];

        $individual_product_array = array(); // CREATE A NEW ARRAY FOR THIS PRODUCT
        $individual_product_array['color'] = $product_color;
        $individual_product_array['size'] = $product_size;

        $all_products[$product_name][] = $individual_product_array;

    }

}