Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一个品牌一个品牌展示一系列产品_Javascript_Php_Jquery_Html_Css - Fatal编程技术网

Javascript 一个品牌一个品牌展示一系列产品

Javascript 一个品牌一个品牌展示一系列产品,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我有一个代码,我想在其中显示数组中的产品列表。 我从n个品牌的阵列中获得大约1000种产品。n可以是1、2、3……等等。 我想展示一个品牌的两个产品,然后是第二个品牌的两个产品,然后是下一个品牌的两个产品,以此类推,在展示时应该重复 Homepage.php <html> <head> <title>Insert title here</title> <script src="http://ajax.googleapis.com/ajax/l

我有一个代码,我想在其中显示数组中的产品列表。 我从n个品牌的阵列中获得大约1000种产品。n可以是1、2、3……等等。 我想展示一个品牌的两个产品,然后是第二个品牌的两个产品,然后是下一个品牌的两个产品,以此类推,在展示时应该重复

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>

在此处插入标题
#形象{
宽度:250px;
高度:250px;
边框:1px纯黑;
}
函数get_check_value(){
var c_值=[];
$('input[name=“brand”]:checked')。每个(函数(){
c_值push(该值);
});
返回c_值。连接(',');
}
函数get_disc_value(){
var d_值=[];
$('input[name=“折扣”]:选中')。每个(函数(){
d_值push(这个值);
});
返回d_值。连接(',');
}
$(文档).ready(函数(){
checkboxValidate=函数(e){
如果(e)e.preventDefault();
//警报(“hi”);
//var os=$('#originState').val();
//var c=$(“#商品”).val();
//var ds=$('#destState').val();
var ser=get_check_value();
var disc=获取盘值();
//var queryString=“os=”+os;
var data=“?ser=“+ser;
var queryString=“&ser=“+ser;
//警报(ser);
$.ajax({
//警报(“ajax”);
类型:“POST”,
url:“sortingajax.php”,
数据:{ser:ser,disc:disc},
数据类型:“html”,
成功:职能(b){
//警报(a+“正常”。+b)
$('#results').html(b);
控制台日志(b);
}
});
} 
$(“[type=checkbox]”)。更改(checkboxValidate);
checkboxValidate();
});
品牌
森贝系列

先期婴儿
商店
10
20
30
分类 SDFSDFSFDSFGSDGSBSFGVF
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.'"';

}

如果像这样在mysql查询中插入_postvars,您将立即被黑客攻击,看到:

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

根据对代码的快速概述,您似乎要将每个产品中的第一个元素添加到数组中,然后再添加第二个元素和第三个元素,以此类推。。直到你达到最高计数

请尝试,首先将最大值限制为2,而不是最大值(因此,在本例中,$highest_number应=2) 第二,添加一个品牌,然后是下一个品牌,而不是一次添加所有品牌,因为除非您以其他方式处理,否则每个品牌都会相互交错。我不知道这是不是你想要的


这有用吗?

我花了一点时间查看了您的代码,但不完全确定它是如何工作的。看来应该有一个更简单的方法来做到这一点。你能启动一个计数器并在它碰到计数器时切断你的回路吗

$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;

    }

}
$i=0;
$all_products=array();
而($row=mysql\u fetch\u数组($firstsql3)){

如果(++$i大多数人不会只是调试你的代码,试着把注意力集中在你面临的问题上。@MichaelKunst-我想以这样的方式显示产品,从1000个阵列产品中,一个从一个品牌第二个品牌第三个品牌第三个品牌,然后重复它。但是我不能用上面的代码做到这一点。它没有显示任何错误,我只想要通过帮助更改我的代码,我没有被黑客攻击。请详细指导@user2780675。他的意思是,在试图对数据库执行恶意代码之前,您需要检查您的数据是否存在恶意代码。Google SQL Injection了解更多信息。还有,这里有一个网站,有人询问如何安全防范此类攻击编程就是永远不要相信用户提供的输入。在使用它做任何事情之前,你总是想检查它以确保它是安全的。好的。那么如果我用GET代替POST,那可以吗?或者我需要更改什么?不,当然不可以;
$\u POST
vs
$\u GET
没关系。
$\u POST
可以。这不是问题你接收数据的方法会导致问题。它会盲目地获取用户数据并将其传递到你的数据库。你需要首先清理(清理)它。在编程中理解这一点非常重要。请查看我在上一篇评论中链接的那篇文章,或者在谷歌上搜索“SQL注入”.MySQL引入了一些功能,您可以使用这些功能来解决此问题,但您也可以在将数据发送到数据库之前清理数据。我根据您的代码编辑了我的代码,可能是您的代码可以破解它。但距离此还很远。请查看我编辑的帖子,我认为我错误地选择了您的代码…请检查我是否看到您进行了编辑,但是哟您删除了适用于此的代码部分。无论如何,您将无法将我的代码插入到您的代码中。我编了一个示例,因为我不完全了解您的代码是如何工作的。您需要接受我试图演示的概念。如果我在这一点上混淆了您,请原谅。基本上,您可以限制结果的数量基于计数器。从零开始计数器。
$i=0;
。然后,每次在($row=…
)循环查询时,递增计数器并检查其是否小于或等于2。
如果(++$1@Quixrick你能帮我编辑代码吗,因为你的场景对我来说完全正确。因为我是PHP新手。如果你能帮我编辑,那将非常感谢你,先生……是的,我已经提出要这么做了。检查我之前的评论以获得collabedit的链接。我已经在那里导入了你的代码。