jQuery试图在GET变量中插入一个空格

时间:2012-12-31 14:38:41

标签: php jquery get

  

可能重复:
  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);
});

我的问题是,如果国家的值为英国,那么在tables.php中,当查看$_GET['country']时,只有 Great < / strong>已被记录。

因此,我认为HTML可能存在问题,而不是由jQuery编码。

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

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

3 个答案:

答案 0 :(得分:6)

尝试:

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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

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

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