Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
使用php或javascript筛选结果_Javascript_Php_Mysql_Smarty - Fatal编程技术网

使用php或javascript筛选结果

使用php或javascript筛选结果,javascript,php,mysql,smarty,Javascript,Php,Mysql,Smarty,我刚开始使用PHP开发,Smarty使用MySQL。我想就以下问题发表专家意见,或者任何好的建议都可以 所以我制作了一个index.php,它也可以连接到数据库MySQL Smarty,通过查询读取我的数据,并从index.tpl文件中显示它们。对于我的产品,product.php连接到数据库,执行查询,并在product.tpl页面上显示我的产品 对于我的index.php,我想添加一个过滤器,按价格从高到低或从低到高显示产品 你有什么建议: 您建议我使用Javascript作为过滤器,还是仅

我刚开始使用PHP开发,Smarty使用MySQL。我想就以下问题发表专家意见,或者任何好的建议都可以

所以我制作了一个index.php,它也可以连接到数据库MySQL Smarty,通过查询读取我的数据,并从index.tpl文件中显示它们。对于我的产品,product.php连接到数据库,执行查询,并在product.tpl页面上显示我的产品

对于我的index.php,我想添加一个过滤器,按价格从高到低或从低到高显示产品

你有什么建议:

您建议我使用Javascript作为过滤器,还是仅从数据库中查询它,以确定何时选择了select值

或者怎样做才是最好的有效方法?关于这方面的任何提示都将提前感谢

我的数据库目前只有3种产品,我只是在测试

.php

.tpl这是用于显示产品列表的循环

    <form method="get" name="sort">
    <select name="sort" id="sort">
                <option value=''>--Select--</option>
                <option value='PriceAsc'>high to low</option>
                <option value='PriceDesc'>low to high</option>
    </select>
    <input type="submit" value="Sort"/>
    </form>



<div class="test divider">
            {section name=prod loop=$row}
                <div class="colm3">
                    <div class="col3 r1">
                        <div class="products-container">
                            <h5>{$row[prod].product_name}</h5>
                            <a class="producy_img_link" href="#" >
                                <img src="{$row[prod].prod_img}" style="width:auto; height:255px;">
                            </a>
                        </div>
                    </div>

                    <a href="#">
                        <div class="block-right">
                            <h6>{$row[prod].product_vintage}</h6>
                            <h5>{$row[prod].product_veriatel}</h5>
                            <div>
                                <span class="price">R {$row[prod].product_price}</span>
                            </div>
                        </div>
                    </a>
                </div>
                {/section}
</div>
现在,每当我单击“从高到低”时,我希望产品按价格从高到低进行筛选,我认为使用查询是一种简单的方法,但我一直坚持这一点。

您可以使用AJAX对表进行排序,给出表头的name属性,单击表头,获得表头的name属性,并对PHP进行AJAX调用

$'th'。单击,函数{ var name=$this.attr'name'; log'AJAX将按:'+name; //这是AJAX调用 //$.post'somephpgage.php',{sortby:name},函数响应{ //$'table-result'.htmlresponse; // }; } 名字 姓氏 年龄 吉尔 史密斯 50 前夕 杰克逊 94
您可以在php中为每个过滤器向上/向下事件执行一个查询usnig order by price DESC/ASCIn认为使用数据库进行适当的查询。。例如,在数据库上构建一个用于搜索的php函数是更好的方法。最好的解决方案是使用AJAX或使用这个jQuery库。如果您获得了大量数据,我认为向php发送一个AJAX请求来查询数据库并为您排序应该会更快、更有效。通过JavaScript进行排序也是可能的,但请记住JavaScript是在客户端pc上运行的,因此如果排序非常慢,也会占用时间,甚至占用太多ram。您还必须将所有数据发送到客户端,并让mysql处理。这正是我等待的答案,谢谢@TobiasF,因此,在php中使用AJAX函数将是最好的方法,因为JQuery将非常缓慢,特别是如果我有allot的产品,感谢您的伟大回答,用几句话解释allot!谢谢你给我的其他建议。哇,谢谢,我正在尝试这个@julekgwa的例子。我会试试这个!谢谢如果它能工作,我会回来的。我在这里注释掉了AJAX,因为PHP不能运行,所以,删除你这边的注释。哦,哈哈,我很困惑,很酷,谢谢你,到了那里!我也来自南非开普敦,顺便说一句@julekgwaquick问,我正在阅读关于json、js、php、AJAX的文章,我只是想知道,使用js加载客户端是否更好?还是使用服务器端的AJAX更好,这让我很困惑我不认为每次为查询建立db连接是好的,但是使用json可以解决这个问题,但现在我只使用php、js、AJAX和Smarty。。
    <form method="get" name="sort">
    <select name="sort" id="sort">
                <option value=''>--Select--</option>
                <option value='PriceAsc'>high to low</option>
                <option value='PriceDesc'>low to high</option>
    </select>
    <input type="submit" value="Sort"/>
    </form>



<div class="test divider">
            {section name=prod loop=$row}
                <div class="colm3">
                    <div class="col3 r1">
                        <div class="products-container">
                            <h5>{$row[prod].product_name}</h5>
                            <a class="producy_img_link" href="#" >
                                <img src="{$row[prod].prod_img}" style="width:auto; height:255px;">
                            </a>
                        </div>
                    </div>

                    <a href="#">
                        <div class="block-right">
                            <h6>{$row[prod].product_vintage}</h6>
                            <h5>{$row[prod].product_veriatel}</h5>
                            <div>
                                <span class="price">R {$row[prod].product_price}</span>
                            </div>
                        </div>
                    </a>
                </div>
                {/section}
</div>