jquery ajax将字符串发送到php和特殊字符,如#

jquery ajax将字符串发送到php和特殊字符,如#,php,jquery,Php,Jquery,我从Jquery开始,所以我尝试做一些非常简单的事情:从输入标记中获取一个字符串,并将其放入div标记中 我的Jquery代码: $(document).ready(function(){ $("#recherche").keyup(function(){ var recherche = $(this).val(); var data = 'motclef=' + recherche; $.ajax({ type : "GET",

我从Jquery开始,所以我尝试做一些非常简单的事情:从输入标记中获取一个字符串,并将其放入div标记中

我的Jquery代码:

$(document).ready(function(){
    $("#recherche").keyup(function(){
    var recherche = $(this).val();
    var data = 'motclef=' + recherche;
    $.ajax({
        type : "GET",
        url : "result.php",
            data : data,
            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
            success: function(server_response){
            $("#resultat").html(server_response).show();
    }
    }); 
}))

}))

我的php代码:

<?php

if(isset($_GET['motclef'])){
    $motclef = $_GET['motclef'];
    echo $motclef;
}
?>

它甚至可以很好地用于角色,例如:。。。甚至是汉字,但它不能与#或&。我怎样才能让它工作?
非常感谢。

因为您使用GET发送数据,所以在使用Ajax发送数据之前需要对数据进行URL编码。使用javascript函数“escape”

escape('&# '); // "%26%23%20"
试试这个

$(document).ready(function(){
    $("#recherche").keyup(function(){
    var recherche = $(this).val();
    var data = 'motclef=' + recherche;
    $.ajax({
        type : "GET",
        url : "result.php",
            data : {motclef: data},
            contentType: "application/x-www-form-urlencoded;charset=UTF-8",
            success: function(server_response){
            $("#resultat").html(server_response).show();
    }
    }); 

尝试更改contentType或删除itI我尝试过但结果相同谢谢,我已经更改了data:data,by data:escape(data)行,但是现在div标记上没有显示任何内容它是否成功发送到PHP?另外,在将数据添加为HTML之前,您应该尝试取消对数据(服务器响应)的扫描。“数据:{motclef:data}”,jQuery将编码并生成一个漂亮的查询字符串,就像您编写page.php?motclef=contenudetoninputencodeDe rien所做的那样!PS:您不需要指定contentType,我认为这是jQuery的默认值(ça rendra ton code加上facileálire;))ok merci du conseil je vais l'effacer。再唱一首商业歌曲。