0

我有一个奇怪的情况。我的页面如下:

<html>
<script>
$(document).ready(function(){
$("input").keyup(function(){
$("#mydiv").load("showlist.php?q="+this.value);
});
</script>
<input><br>
<div id="mydiv">ajax content appear in here</div>
</html>

我的 showlist.php 很简单:

echo $_GET['q'];

当我在文本框中输入 ie: abcde {这意味着 mydiv 标记中的内容被 showlist.php 的输出替换} 时,页面运行良好。但是当我输入abcd efgh {这意味着它在字符串中有一个空格} 时,div 中什么也没有出现。它只是空白!我做错了什么?

4

2 回答 2

2

在将字符串传递给服务器之前,您应该使用以下方法对字符串进行编码encodeURIComponent()

$("#mydiv").load("showlist.php?q="+encodeURIComponent(this.value));

编辑:关于vs的一个有用的SO问题encodeURIComponent()encodeURI()

于 2012-06-19T04:41:57.167 回答
0

' ' (空格)需要被 urlencoded 为 %20 ('+' 也可以)

将您的 URI 编码为:

var newUri = 'showlist.php?' + encodeURI("q="+this.value);
$("#mydiv").load(newUri);
于 2012-06-19T04:41:33.313 回答