2014-04-04 33 views
-3

我正在尝试为我正在开发的在线商店开发产品过滤器。我的意思的一个例子是http://www.riverisland.com/men/just-arrived。我设法在点击大小时设置了一个JavaScript来填充URL,但未选中时却无法从URL中删除值。PHP使用GET获取URL的值[]

我的主要问题在这里。假设我有我的网址为:

http://127.0.0.1/shop/dresses/?s=1&s=2&s=3

如何让我的PHP来从URL中提取值? 如何格式化SQL查询以使用任何示例查询来搜索从URL获取的值?

+0

如果您获取您在问题中显示的URL的值,则只会获得3.您需要将's'更改为数组'[]'并通过AJAX传递值。 –

+0

感谢您的建议。由于我对Ajax不擅长,我该如何实现这一目标?我的表格将其作为名称=“s []” – iLearnDaily

+0

完整的解决方案?对不起,但你需要在这个网站提出具体问题。来吧,唯一剩下的就是要求一个图形设计; -P –

回答

0

URL编码值的简单的解决方案是这样的。

根据@ Andrey.Popov建议的格式化您的网址,如http://127.0.0.1/shop/dresses/?s=1,2,3。然后执行下面的操作。

if(isset($_GET['s']) && !empty($_GET['s'])) 
{ 
    $e = sanitizeFunction($_GET['s']); 
    $d=explode(',',$e); 
} 

$d现在有你所有的$ _GET [ 'S']值。

这是我找到的更简单的方法,它的工作原理!

+0

您的解决方案速度更快,理解起来也更简单,所以我将其作为答案,但@Alvaro很重要,尽管它需要我知道自己在做什么,或者迷失在理解中。这个解决方案只是一个ABC解决方案,对我来说工作得更快。 如何获得各种尺寸或品牌的盒子?请求最后一条线索,然后我理清SQL – iLearnDaily

+0

更好的方法是在for()循环中从数据库填充值,然后执行下面的操作,它对您来说可以正常工作。如果(in_array($ checkid [$ i],$ paramfromurl)){?>选中' – OmniPotens

+1

'非常感谢。这工作!我的SQL也正常工作。感谢所有帮助我实现这个目标的人。我现在转到其他的东西。 – iLearnDaily

0

为了受益于$_GET和其他超全球植物,您必须遵循Variables From External Sources中解释的规则。既然你已经选择了几个具有相同名称的参数,并且它们不包含正确配对的方括号,那么你基本上都是自己的。你必须复制的手动步骤包括:

  1. $_SERVER['QUERY_STRING']提取原始查询字符串,例如:

    $query_string = filter_input(INPUT_SERVER, 'QUERY_STRING'); 
    
  2. 解析出的字符串。据我所知,没有内置函数可以做到这一点,所以我要么谷歌一个良好的第三方库,或写一个简单的分析与正则表达式或旧的explode()

  3. 解码与urldecode()

+0

我现在正在工作。按照我所能完成的工作,将解决SQL问题。感谢领先。 – iLearnDaily