获取查询字符串值并传递给JQuery

时间:2018-08-09 15:56:05

标签: php jquery query-string

我试图创建自己的自定义面包屑,为此,我必须使用PHP获取查询字符串,然后将其传递给jQuery。到目前为止,我已经能够在foreach循环中获取查询字符串keys/values,然后将其放置在输入中,然后可以使用jQuery获取值,但是,我的问题是,如果我为单个输入有多个值像这样的关键

?filter_style=bevelled-glass&filter_colour=amber,clear 

我检索到的都是两个值,但是我需要能够将它们分开。这是我的代码以及正在获取的内容;

代码;

<?php 
    foreach($_GET as $key => $value){
        echo '<input class="' . $key . '" type="text" value="' . $value . '" style="display: none;">';
    }
?>

输出;

<input class="filter_style" type="text" value="bevelled-glass" style="display: none;">
<input class="filter_colour" type="text" value="amber,clear" style="display: none;">

我想要什么;

<input class="filter_style" type="text" value="bevelled-glass" style="display: none;">
<input class="filter_colour" type="text" value="amber" style="display: none;">
<input class="filter_colour" type="text" value="clear" style="display: none;">

这也是将数据传递到jQuery的最佳方法,还是可以创建某种oJSONon对象?

3 个答案:

答案 0 :(得分:3)

您可以展开每个值以从中获取项目的数组,然后循环并打印。

<?php 
    foreach($_GET as $key => $value){
        $subarray = explode(",",$value);
        foreach($subarray as $subvalue)
        {
             echo '<input class="' . $key . '" type="text" value="' . $subvalue . '" style="display: none;">';
        }
    }
?>

答案 1 :(得分:1)

我对PHP并不了解很多,但是根据我对GET请求的了解,您应该能够将amber,clear作为数组并从那里拆分出来。在伪代码中,

foreach ($_GET as $key => $value) {
    if ($value is array) { 
        foreach ($val in $value) {
            <input class="' . $key . '" value="' . $val . '">
        }
    else {
        <input class="' . $key . '" value="' . $value . '">
    }
}

如果该代码按书面形式运行,我会感到非常惊讶,但这就是我在使用其他语言进行开发时要解决的问题。而且,我认为,尽可能使用JSON总是更好。

答案 2 :(得分:0)

尝试类似的事情

foreach($_GET as $key => $value){

if(count(explode(',',$value))){

foreach(explode(',',$value) as $subvalue){

echo '<input class="' . $key . '" type="text" value="' . $subvalue . '" style="display: none;">';

}

}else{
echo '<input class="' . $key . '" type="text" value="' . $value . '" style="display: none;">';
}

}