如何正确格式化用户输入的文本,以便通过JSON/AJAX发送到PHP?

如何正确格式化用户输入的文本,以便通过JSON/AJAX发送到PHP?,php,javascript,jquery,ajax,json,Php,Javascript,Jquery,Ajax,Json,我想通过包含特殊字符的AJAX将用户输入的输入作为JSON发送到PHP,如“,”等。我正在发送数组的内容(用于slickgrid),除非包含这些字符,否则一切正常。我知道PHP有方便的函数mysql\u real\u escape\u string,但是有类似jquery的函数吗?下面是相关代码: req = $.ajax({ url: url, dataType: "text", data: {"data": $.JSON.encode(data)}, type: "post", s

我想通过包含特殊字符的AJAX将用户输入的输入作为JSON发送到PHP,如“,”等。我正在发送数组的内容(用于slickgrid),除非包含这些字符,否则一切正常。我知道PHP有方便的函数mysql\u real\u escape\u string,但是有类似jquery的函数吗?下面是相关代码:

req = $.ajax({
 url: url,
 dataType: "text",
 data: {"data": $.JSON.encode(data)},
 type: "post",
 success: onSaveSuccess,
 error: onSaveError
});
以下是提交给的PHP:

<?php
//$data = array();

//if (isset($_POST['data']))
//{
 //$data = json_decode($_POST['data']);
//}

//header('Content-Type: text/javascript');
//echo json_encode($data);
print_r($_POST);
?>

更清楚地说,当包含特殊字符时,不会触发成功或错误事件


我查看了firebug,当包含特殊字符时,它似乎根本不会发送任何东西……当然,当它只是字母或其他东西时,它会发送任何东西。

javascript有一个
escape()
函数。您可以
$.JSON.encode(escape(data))
可能会起作用

这是由于脚本在某些类型的输入上明显失败。切换到json2.js并使用JSON.stringify解决了这个问题

data: {"data": $.JSON.encode(data)},
向上传递比您需要的更复杂的JSON对象

$data = json_decode($_POST['data']);
正在寻找序列化的JSON对象,但jQuery在后台为您做了大量工作

试试这个

data: $.JSON.encode(data),
在AJAX调用中,然后在PHP中

$data['myPostValue'] = $_POST['myPostValue'];

您正在向
$.ajax
调用发送一个JSON对象,它正在将其更改为服务器通常从post获得的名称-值对。

您不能只执行
mysql\u real\u escape\u字符串(stripslashes($\u post['var'))
?它首先不适用于PHP,所以不……哦,我明白了。因为字符串中有逗号。jQuery将为您处理负载的正确转义。您不需要也不应该在UI端进行任何进一步的转义。您应该在后端的反序列化JSON负载上使用mysql\u real\u escape\u字符串。可能显示您的PHP代码可能会有所帮助。好的,我展示了当前的情况。我只做打印($\u POST)。当发送请求时,我有一个连接到“保存”的事件,该事件会被触发……然后什么都没有。成功或错误事件都不会从AJAX触发。我发送的数据中有问题的字符串类似于:“,。可能不会。
escape()。