2017-05-31 133 views
0

私はGETメソッドを使用してajaxで文字列を送信しようとしていますが、その文字列にphpでエコーを使用すると文字が表示されない場合は、AjaxからPHPを使用してデータを送信する

たとえば、「サブ12」の文字列を送信すると、phpは「サブ12」をエコーし​​ます 「&(*)」を送信すると、phpは空の文字列をエコーし​​ます。

どうしてですか? 文字列に含めることができない特殊文字はありますか?

+2

あなたは、関連するコードを表示することができますしてください? – JazZ

+1

あなたのコードを試してみてください –

答えて

1

encodeURIComponent()。これは、あなたが最初にこのhtmlコードこのencodeURIComponent(yourtext)

よう

何かを確認することができますデモコードです。テキストにテキストを入力し、この出力を確認し提出し、これはので、テキストを入力して、結果をチェックし

<?php 

$searchquery = $_GET['search_text']; 
echo $searchquery; 
?> 

个人设定ファイルを作成

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>PHP, jQuery search demo</title> 
<link rel="stylesheet" type="text/css" href="my.css"> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $("input").keyup(function() { 
     $('#results').html(''); 
     var searchString = $("#search_box").val(); 
     var data = 'search_text=' + encodeURIComponent(searchString); 
     if (searchString) { 
      $.ajax({ 
       type: "GET", 
       url: 'edit.php', 
       data: data, 
       dataType: 'text', 
       async: false, 
       cache: false, 
       success: function (result) { 
        $('#results').html(result); 
        //window.location.reload(); 

       } 
      }); 
     } 
    }); 
}); 
</script> 

</head> 
<body> 
<div id="container"> 
<div style="margin:20px auto; text-align: center;"> 
<form method="post" action="do_search.php"> 
    <input type="text" name="search" id="search_box" class='search_box'/> 
    <input type="submit" value="Search" class="search_button"/><br/> 
</form> 
</div> 
<div> 

<div id="searchresults">Search results :</div> 
<ul id="results" class="update"> 
</ul> 

</div> 
</div> 

</body> 
</html> 

をチェック結果onkeyupのです。

を作業している

出力である

検索結果:

&()* 
+0

ありがとう、私が必要としていたのがencodeURIcomponentでした! –

+0

あなたは歓迎です –

1

encodeURI()を使用してリクエストを送信してください。

+0

ありがとうございました! –

関連する問題