通过JSON/AAJAX将用户输入的文本格式化发送到PHP的正确方式
Proper way to format user-entered text input for sending via JSON/AJAX to PHP?
我遇到了一些用户输入的问题,我想通过包含特殊字符的AJAX将这些输入作为JSON发送到PHP,比如",'等。我正在发送一个数组(用于slickgrid)的内容,除非包含这些字符,否则一切都很好。我知道PHP有方便的函数mysql_real_eescape_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,当特殊字符包括在内时,它似乎根本没有发送任何东西。。。当然,当它只是信件或其他什么的时候,它会这样做。
这是由于这里的脚本在某些类型的输入上明显失败。切换到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中获得的名称-值对。
escape()
函数。你可以$.JSON.encode(escape(data))
可能工作
相关文章:
- PHP和JS中表单验证的最佳方式
- 在Javascript中以与在PHP中相同的方式存储时间
- 如何使用Angularjs以PHP方式提交表单
- PHP是否以与JavaScript相同的方式解释代码
- 在php生成的页面上获取勾选复选框列表的动态方式
- 将JSON从PHP控制器传递到AngularJS控制器的最佳方式
- 如何以与使用Javascript的PHP相同的方式获取数据
- 如何使用 PHP 以外的其他方式解析 RSS 提要
- 提交多个输入字段 jQuery/PHP 的最佳方式
- 使用 PHP 和 Javascript 从 MySQL 加载数据的最佳方式
- 如何[专业/正确的方式]将PHP代码插入JavaScript和/或HTML
- 创建用户可以在带有 php 或 JavaScript 的模板中使用的“变量”的最佳方式
- 将javascript类作为json/替代方式传递给php
- 使用PHP,CSS,JavaScript或任何可能的方式模糊不同帐户级别的图像
- 语言PHP数组 - 传递给Javascript的优雅方式
- 如何让 Javascript 和 PHP 以相同的方式对 JSON 响应进行排序
- PHP/AAJAX多用户应用程序-数据正在以某种方式丢失
- 我的查询获胜'因为一个剧本,它不能工作(它以错误的方式工作)!?但为什么呢?SESSIONS和PHP
- 加载子页面的最佳方式?PHP或JS
- 使用PHP显示HTML内容的最佳方式是什么