-1

遇到 AJAX 和 PHP 问题的朋友您好???让我告诉你我做了什么......!我在一个页面(AJAX_view.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);

这就是我从数据库中选择数据的方式??请帮忙

4

1 回答 1

2

您需要进行编码+,否则将被视为空格()。为此使用encodeURIComponentstr

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

如果 strA+没有encodeURIComponent它会生成 url search.php?q=A+。这使得$_GET['q']='A '在 PHP 端。(注意空格)

有了encodeURIComponent它就会search.php?q=A%2B产生$_GET['q']='A+'

于 2013-09-24T06:55:51.147 回答