【发布时间】:2013-12-05 09:28:11
【问题描述】:
我将值从 java 脚本传递到 php 文件以进行插入,如果我发送的名称没有特殊字符,则插入没有问题。
姓名:sathish
位置:班加罗尔
但是我发送我的名字时带有任何特殊字符,然后 json_decode() 不接受它。
姓名:sathish&kumar
位置:班加罗尔
我尝试使用 utf8_encode() 和 var_dump() 函数。
在第一种情况下 var_dump 显示
字符串(43)
"{"name":"sathish","location":"bangalore"}"
在第二种情况下 var_dump 显示
字符串(18)
"{"name":"sathish"
在这种情况下,它以 18 个字符结尾,如果我遗漏了其中的任何内容。请帮我解决这个问题。
JavaScript:
function createTC()
{
var p=document.forms['TCForm'];
var JSONObject =new Object;
JSONObject.name=p['txtName'].value;
JSONObject.location=p['txtLocation'].value;
JSONstring = JSON.stringify(JSONObject);
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
var request = new ActiveXObject("Microsoft.XMLHTTP");
}else{
var request = new XMLHttpRequest();
}
var random1 = Math.random();
var urlstr="../TraineeCreation/createTC.php?rand="+random1+"&json="+JSONstring;
request.open("GET", urlstr , true);
request.onreadystatechange = function()
{
if (request.readyState == 4)
alert(request.responseText);
}
request.send(null);
}
谢谢
【问题讨论】:
-
&是 URL 中的一个特殊值,并形成通过 POST 发送的编码数据。它标志着前一个参数值的结束。看来您在发送 JSON 之前没有正确编码它。请发布您用来发送数据的 JavaScript 代码。 -
请edit您的问题并添加您的代码。它在 cmets 中是不可读的。正确格式化您的代码:stackoverflow.com/editing-help.
标签: javascript php