Javascript 在WordPress中,如何将多个变量传递到URL并检索它们?
出于某种原因,我只能从URL中检索第一个变量,在本例中是“product_category” 我正在输出javascript以确认我已经设置了变量,但同样,只有咖啡会被提醒,而不是品牌。我正在使用WordPress的“获取查询变量”。见下面的代码: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') . '";
<?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,谢谢!我必须注册你在第二种可能性中提到的品牌。谢谢!我必须注册你在第二种可能性中提到的品牌。谢谢!我必须注册你在第二种可能性中提到的品牌。