-3

我正在使用 JQuery 和 aJax 和 PHP 将一些数据插入数据库

但我有一个小问题,当我插入包含 (&) 符号的数据时.. 数据库读取 (&) 之前的文本..

例如.. 如果标题是 (Sun & Moon)。它将它保存为:(Sun)仅..我该如何解决?

所以这是我的代码:

<script type="text/javascript">
$(document).ready(function(){
$('#submit').click(function(){  
$('#result').fadeOut("fast");
$('#wait').fadeIn("slow").delay(1000);
    var number = $("input#number").val();
    var title = $("input#title").val();
  var dataAll = 'number='+ number + '&title=' + title ;
  $.ajax({
    url: "../insert/add_module/",
    type : "POST",
    data : dataAll,
    dataType :"html",
    success : function(msg){
        $('#wait').fadeOut("fast");
        $('#result').fadeIn("slow");
         $('#result').html(msg)

    }

  });

});
});

4

3 回答 3

0

您需要转义 URL 中的 & 符号,否则浏览器会认为它是另一个变量对的开始。

将标题字符串上的 '&' 替换为 '%26'。

http://www.w3schools.com/tags/ref_urlencode.asp

&

http://meyerweb.com/eric/tools/dencoder/

于 2013-09-17T07:59:12.930 回答
0

您应该对 jQuery 提供的表单数据使用正确的序列化.serialize()。& 符号将被转义,因此它不会被解释为另一个变量

<script type="text/javascript">
$(document).ready(function(){
$('#submit').click(function(){  
   $('#result').fadeOut("fast");
   $('#wait').fadeIn("slow").delay(1000);

   var dataAll = $('#number, #title').serialize();

   $.ajax({
     url: "../insert/add_module/",
     type : "POST",
     data : dataAll,
     dataType :"html",
     success : function(msg){
         $('#wait').fadeOut("fast");
         $('#result').fadeIn("slow");
         $('#result').html(msg);
    }

  });

});
});
于 2013-09-17T08:01:44.490 回答
0

代替

var dataAll = 'number='+ number + '&title=' + title ;

你可以试试

var dataAll = { number: number, title: title} 
于 2013-09-17T08:04:00.580 回答