我在url链接中遇到jquery语法问题:
这是我得到的链接(englisch):
...我的账户/郎=能量%2Fprint阶%2F2067%2F&安培;打印顺序型=收据
这是德语链接:
...我的账户/打印顺序/ 2067 /?打印顺序型=收据
现在的问题是,我的浏览器中的链接看起来不错
我的账户/打印顺序/ 2067 /?打印顺序型=收据
但实际上当我复制链接时,链接中总是有一个“%2F”而不是“/”,这导致了获得404的问题。
当我手动替换“%2F”时,链接可以正常工作。
问题出在哪里?有什么想法解决这个问题?
以下代码来自woocommerce / templates / myaccount / my-orders.php
if ($actions) { foreach ( $actions as $key => $action ) { echo '<a
href="' . esc_url( $action['url'] ) . '" class="button ' .
sanitize_html_class( $key ) . '">' . esc_html( $action['name'] ) .
'</a>'; }
它会在“我的订单”页面上生成“打印”按钮。我正在使用mqtranslate german / englisch。在德语版本中一切正常 - 链接是正确的,当我切换语言时,有“%2f”而不是“/”。但也只是在第一部分之后(直到myaccount /) - 因为某些“/”被正确编码。
同样在英文版中它是“&amp;”在“print-order-type = receipt”之前而不是“?”之前。
答案 0 :(得分:7)
对复制的值使用decodeURIComponent:
decodeURIComponent('myaccount/?lang=en%2Fprint-order%2F2067%2F?print-order-type=receipt')
答案 1 :(得分:1)
这样做:
echo '<a href="' . urldecode($action['url'] ) ....
更多相关信息: http://us1.php.net/manual/en/function.urldecode.php
urldecode()正在做egzactly你正在寻找的东西。只需在你的foreach循环中应用它。
这将解决您的问题
干杯:)
您可以在http://3v4l.org/mhVuV类型的phpfiddle上尝试:)
把它放在方框中:
echo urldecode("myaccount/?lang=en%2Fprint-order%2F2067%2F&print-order-type=receipt");