【问题标题】:jQuery trying to insert a space into GET variable [duplicate]jQuery试图在GET变量中插入一个空格[重复]
【发布时间】:2012-12-31 14:38:40
【问题描述】:

可能重复:
replace space in URL JavaScript

jQuery("#changeCoinCountrySelect").change(function(){
      // Get value from select box
      var country = jQuery('#changeCoinCountrySelect option:selected').val();

      jQuery("#coinTable").load(".../.../.../tables.php?country="+country);
});

我的问题是,如果 country 具有值 Great British 例如,那么在 tables.php 中,查看 $_GET['country'] 时,只有 Great > 被记录下来。

因此,我认为可能存在 HTML 没有被 jQuery 编码的问题。

可能的解决方案,html 编码国家变量,然后在 php 脚本中解码。问题是这似乎对空格没有任何作用!

我是 jQuery 的灾难,所以如果有人能指出我正确的方向吗?

【问题讨论】:

标签: php jquery get


【解决方案1】:

试试:

jQuery("#coinTable").load(".../.../.../tables.php?country="+encodeURIComponent(country));

您需要对放入 URL 中的数据进行编码。在javascript中,您需要使用encodeURIComponent

【讨论】:

    【解决方案2】:

    您可以使用encodeURIComponent(如 j0k 所建议的那样)。 但是,鉴于您使用的是 jQuery,我会这样做:

    jQuery("#coinTable").load("../../../tables.php", { country: country });
    

    这会将一个简单的 JS 对象传递给 jquery,它会为您编码所有键/值。

    【讨论】:

      【解决方案3】:

      我最好为你使用 uri-safe 值select,顺便说一下,这将更加 i18n 友好:

      <select id="changeCoinCountrySelect">
        <option value="uk">Great Britain</option>
        <option value="us">USA</option>
        ...
      </select>
      

      这样,您可以依赖更强大的标签。

      【讨论】:

        猜你喜欢
        • 2019-11-19
        • 1970-01-01
        • 1970-01-01
        • 2019-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        相关资源
        最近更新 更多