使用POST方法使用Ajax从JavaScript将大量字符发送到PHP

时间:2019-05-25 01:04:19

标签: javascript php ajax

这是我的JS文件

function save()
{

    var hist = document.getElementById("hist").value;
                var mission =   document.getElementById("mission").value;

            var params = "history=" + hist+ "&mission=" + mission;
 var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() 
        {
             if (this.readyState == 4 && this.status == 200 ) 
            {

                 UserAccountInfo =   this.responseText;
                 alert(UserAccountInfo);
            }
        }
        xmlhttp.open("POST","savecompany.php",true);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.send(params);  
}   

历史消息将为

  

由工程师Anas El-Menoufi创立,拥有8年的经验   W.C Heraus GmbH的市场顾问和业务发展经理   在非洲和中东。自1983年以来,MYMSA被认可为   埃及市场是埃及和中东和北非地区首批公司之一   专门提供解决方案,仪器,咨询服务   以及用于初级和次级测试的售后服务以及   许多领域的校准实验室。

任务将是

  

旨在通过提供最佳服务来赢得客户的信任和满意   咨询,提高市场知名度以及与之合作   世界上最好的制造商。

     

我们认为,建立内部能力将反映在   市场。

将这些变量发送到PHP文件后

历史成为

  

由工程师Anas El-Menoufi创立,拥有8年的经验   W.C Heraus GmbH的市场顾问和业务发展经理   在非洲和中东。自1983年以来,MYMSA被认可为   埃及市场是埃及和中东和北非地区首批公司之一   专门提供解决方案,仪器,咨询服务   以及主要的售后服务

和任务

  

旨在赢得客户的信任

只有!!! 为什么会这样???以及如何发送整个大型邮件?

这是我的PHP文件

<?php

    require "conn.php";


    $history= $_POST["history"];
    $mission = $_POST["mission"];

    $sql = " UPDATE company SET history ='$history' , mission='$mission'  where id='1'";
    mysqli_query($conn,$sql);


echo "done";
mysqli_close($conn);
?>

2 个答案:

答案 0 :(得分:4)

首先,您应该将此类数据发布到POST请求的正文/有效负载中,但这就是您当前的解决方案不起作用的原因:

如您所见,您的文本在文本中的“&”符号之前停止-这是因为&符号是附加另一个查询参数的URL组件-需要将其编码为%26,幸运的是JavaScript encodeURIComponent可以做到这一点。

在创建params变量时,可以像这样使用encodeURIComponent

var params = "history=" + encodeURIComponent(hist) + "&mission=" + encodeURIComponent(mission);

答案 1 :(得分:0)

您可以将数据转换为php上的Javascript可以理解的内容。

var params = ["history" : hist,
              "mission" : mission];
params = JSON.stringify( params );

然后在php端使用:

$history = $_POST['history'];
$mission = $_POST['mission';