Javascript 在WordPress中,如何将多个变量传递到URL并检索它们?

Javascript 在WordPress中,如何将多个变量传递到URL并检索它们?,javascript,php,wordpress,url,get,Javascript,Php,Wordpress,Url,Get,出于某种原因,我只能从URL中检索第一个变量,在本例中是“product_category” 我正在输出javascript以确认我已经设置了变量,但同样,只有咖啡会被提醒,而不是品牌。我正在使用WordPress的“获取查询变量”。见下面的代码: <?php echo '<script> product_category = "' . get_query_var('product_category') . '";

出于某种原因,我只能从URL中检索第一个变量,在本例中是“product_category”

我正在输出javascript以确认我已经设置了变量,但同样,只有咖啡会被提醒,而不是品牌。我正在使用WordPress的“获取查询变量”。见下面的代码:

<?php 
        echo '<script> product_category = "' . get_query_var('product_category') . '"; 
                       brand = "' . get_query_var('brand') . '";
                       alert(product_category);
                       alert(brand);
             </script>'; 
?>


任何帮助都将不胜感激-我正在努力解决它

既然您正在测试,也许您可以直接测试php?函数get\u query\u var只是通用php数组$\u get的包装器。您应该在$\u GET['product\u category']和$\u GET['brand']上提供这些值。但是与其假设一切都在它应该在的地方,为什么不检查一下你实际拥有的东西呢

<?php 
    add_settings_error("var-test", "var-test", implode(", ", array_keys($_GET)));
?>

免责声明:我是Drupal开发人员,不是Wordpress,但他们都是php。 我在这里使用文档化的消息工具来获取更简洁的php代码。 如果愿意,您仍然可以使用javascript:

<?php 
    echo '<script> alert( '. implode(", ", array_keys($_GET)) .');
         </script>'; 
?>

第二种可能性。使用包装函数而不是原始内核的原因是它在包装中提供了什么。我通常的假设是卫生和安全过滤器,它们对于测试来说很差,但对于生产环境来说是必不可少的。但是,只要稍微阅读一下您正在使用的函数,就会发现它只返回已知查询对象的值,如果您在url中使用自定义变量,则应该注册它们。
您是否注册了“品牌”?

既然您正在测试,也许您可以直接测试php?函数get\u query\u var只是通用php数组$\u get的包装器。您应该在$\u GET['product\u category']和$\u GET['brand']上提供这些值。但是与其假设一切都在它应该在的地方,为什么不检查一下你实际拥有的东西呢

<?php 
    add_settings_error("var-test", "var-test", implode(", ", array_keys($_GET)));
?>

免责声明:我是Drupal开发人员,不是Wordpress,但他们都是php。 我在这里使用文档化的消息工具来获取更简洁的php代码。 如果愿意,您仍然可以使用javascript:

<?php 
    echo '<script> alert( '. implode(", ", array_keys($_GET)) .');
         </script>'; 
?>

第二种可能性。使用包装函数而不是原始内核的原因是它在包装中提供了什么。我通常的假设是卫生和安全过滤器,它们对于测试来说很差,但对于生产环境来说是必不可少的。但是,只要稍微阅读一下您正在使用的函数,就会发现它只返回已知查询对象的值,如果您在url中使用自定义变量,则应该注册它们。
你注册“品牌”了吗?

别这么做。您正在将PHP中的文本直接填充到js上下文中。您面临着引入JS语法错误的主要风险。始终使用json_encode()来保证PHP生成在JS中有效的内容。e、 g.
brand=。非常感谢你的提示。奇怪的是,为什么将PHP填充到js上下文中会导致语法错误,而json_encode则不会,因为json本质上是javascript。e、 g.
$foo=“Miles O'Brien”,如果您将其回送到JS中,您将得到
var bar='Miles O'Brien',这会导致字符串终止错误。编码为json可确保整个php字符串成为有效的javascript字符串。将JSONYNEnCONE视为SQL的MySQLXRealOracle EngestEffScript()的JavaScript,不要这样做。您正在将PHP中的文本直接填充到js上下文中。您面临着引入JS语法错误的主要风险。始终使用json_encode()来保证PHP生成在JS中有效的内容。e、 g.
brand=。非常感谢你的提示。奇怪的是,为什么将PHP填充到js上下文中会导致语法错误,而json_encode则不会,因为json本质上是javascript。e、 g.
$foo=“Miles O'Brien”,如果您将其回送到JS中,您将得到
var bar='Miles O'Brien',这会导致字符串终止错误。编码为json可确保整个php字符串成为有效的javascript字符串。将JSONYNEnCONE视为SQL的MySQLXRealOracle EngestEffScript()的JavaScript,不要这样做。您正在将PHP中的文本直接填充到js上下文中。您面临着引入JS语法错误的主要风险。始终使用json_encode()来保证PHP生成在JS中有效的内容。e、 g.
brand=。非常感谢你的提示。奇怪的是,为什么将PHP填充到js上下文中会导致语法错误,而json_encode则不会,因为json本质上是javascript。e、 g.
$foo=“Miles O'Brien”,如果您将其回送到JS中,您将得到
var bar='Miles O'Brien',这会导致字符串终止错误。编码为json可确保整个php字符串成为有效的javascript字符串。将JSONYNEnCONE视为SQL的MySQLXRealOracle EnvesteScript()的JavaScript,谢谢!我必须注册你在第二种可能性中提到的品牌。谢谢!我必须注册你在第二种可能性中提到的品牌。谢谢!我必须注册你在第二种可能性中提到的品牌。