Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过AJAX将HTML发送到服务器端PHP_Php_Javascript_Jquery_Ajax - Fatal编程技术网

通过AJAX将HTML发送到服务器端PHP

通过AJAX将HTML发送到服务器端PHP,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我正在尝试将表单中的HTML发送到服务器端脚本,以便将其保存在数据库中。我发送的是一个查询字符串,每当HTML包含逗号或符号之类的字符时,HTML的其余部分就会被截断 提前谢谢 发送请求时,应正确地对参数进行URL编码: $.ajax({ url: 'foo.php', data: { html: '<html>You can use whatever characters you want here</html>' }, type: 'GET',

我正在尝试将表单中的HTML发送到服务器端脚本,以便将其保存在数据库中。我发送的是一个查询字符串,每当HTML包含逗号或符号之类的字符时,HTML的其余部分就会被截断


提前谢谢

发送请求时,应正确地对参数进行URL编码:

$.ajax({
    url: 'foo.php',
    data: { html: '<html>You can use whatever characters you want here</html>' },
    type: 'GET',
    success: function(result) {

    }
});
现在,您可以安全地读取PHP脚本中的
html
变量:
$。获取[“html”]

我想现在您的代码看起来是这样的:

$.ajax({
    url: 'foo.php?html=' + $('#someTextField').val(),
    type: 'GET',
    success: function(result) {

    }
});

我建议您永远不要使用字符串连接,而是始终使用
数据
哈希。

正如Darin Dimitrov所说,它需要进行URL编码。我使用这些函数在javascript中进行编码和解码

function urlencode(str) {
    return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function urldecode(str) {
    return unescape(str.replace(/\+/g, ' '));
}

我相信是从phpbuilder上的一篇文章中得来的。

是数据html是保留的关键字,如果你提到as html,它会处理这些类型问题吗…@gov,no
html
不是保留字。你可以用任何你喜欢的名字。重要的部分是使用
数据
散列。我总是以查询字符串的形式传递,这就是为什么我要问,我们在上面的代码中在哪里使用了散列,我只是为了学习,不是吗mind@gov,则
$方法的
数据
参数是散列(键/值对)@DarinDimitrov如果我不想使用php我想使用asp.net怎么做。哇。丑陋的车轮改造。当有和的时候,你到底为什么要使用这样的函数呢。滚动自己的编码函数很少是件好事。哇,显然我需要更新我的代码。谢谢你的通知。
function urlencode(str) {
    return escape(str).replace(/\+/g,'%2B').replace(/%20/g, '+').replace(/\*/g, '%2A').replace(/\//g, '%2F').replace(/@/g, '%40');
}

function urldecode(str) {
    return unescape(str.replace(/\+/g, ' '));
}