无法使用php和ajax检索+字符

时间:2013-09-24 06:51:56

标签: javascript php mysql ajax

你好朋友面临AJAX和PHP的问题??? 让我告诉你我做了什么......! 我创建了2页  一个页面(AJAX_view.php),其中包含所有血型中的所有血型组,如(b +,b-),我将我的ajax代码放在同一页面上。异步搜索数据库中可用的血型(MySql)。 现在另一个页面(search.php)具有从数据库中检索数据的所有php代码和查询。 现在真正的问题是从第一页我使用代码

将url中的字符串传递给另一个页面
           xmlhttp.open("POST","search.php?q="+str,true);
           xmlhttp.send();

这里的str是没有引号的'B +' 并且它不会读取“+”,它读取的只是B ...这只发生在“+”的情况下,而如果我将字符串str作为“A-”传递它给出的结果没有任何问题或错误,返回数据库的结果 但是有一些像B +,AB +,O +这样的血型,并且没有结果显示出来。

       $q=$_GET['q']; 

这是我在搜索页面上检索字符串的方式..

      $select_query="SELECT * FROM blood_donate WHERE blood_group='$q'";
        $res=mysql_query($select_query);

这是我如何从数据库中选择数据? 请帮忙

1 个答案:

答案 0 :(得分:2)

您需要编码+ ,否则它将被视为空格()。在encodeURIComponent上使用 str

xmlhttp.open("POST","search.php?q="+encodeURIComponent(str),true);

如果str为A+而没有encodeURIComponent,则会生成网址search.php?q=A+。这使得PHP结束时$_GET['q']='A '。 (注意空格)

使用encodeURIComponentsearch.php?q=A%2B会产生$_GET['q']='A+'