【问题标题】:Get query string values and pass to JQuery获取查询字符串值并传递给 JQuery
【发布时间】:2018-08-09 15:56:05
【问题描述】:

我正在尝试创建自己的自定义面包屑,为此我必须使用 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 对象?

【问题讨论】:

    标签: php jquery query-string


    【解决方案1】:

    您可以分解每个值以从中获取一组项目,然后循环并打印。

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

    【讨论】:

      【解决方案2】:

      我对 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 总是更好。

      【讨论】:

      • if ($value is array) { 这个条件永远不会通过,因为他没有传递一个数组,他传递了一个带逗号的字符串
      • 是的,我认为 Sujit 的答案是正确的代码
      • 是的,我的也经过测试并且工作正常,但被否决了,因为总是有人在某个地方拥有错误的权限......
      【解决方案3】:

      试试这样的

      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;">';
      }
      
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-22
        相关资源
        最近更新 更多