猿问

使用POST方法使用Ajax从javascript向PHP发送大量字符

这是我的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 在担任非洲和中东 WC Heraus GmbH 的营销顾问和业务发展经理 8 年经验后创立。自 1983 年以来,MYMSA 在埃及市场上被公认为埃及和 MENA 地区最早的公司之一,专门为许多领域的初级和二级测试和校准实验室提供解决方案、仪器、咨询和售后服务。


和使命将是


旨在通过提供最好的咨询、提高市场知名度以及与世界各地最好的制造商合作来获得客户的信任和满意。


我们相信,建立我们的内部能力将反映市场。


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


历史变成了


由工程师 Anas El-Menoufi 在担任非洲和中东 WC Heraus GmbH 的营销顾问和业务发展经理 8 年经验后创立。自 1983 年以来,MYMSA 被埃及市场公认为埃及和 MENA 地区首批专门为初级产品提供解决方案、仪器、咨询和售后服务的公司之一。


和使命


旨在赢得客户的信任


仅有的!!!为什么会这样???我怎样才能发送整个大消息?


这是我的 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);

?>


富国沪深
浏览 127回答 2
2回答

一只斗牛犬

首先,您应该在 POST 请求的正文/有效负载中发布此类数据,但这就是您当前的解决方案不起作用的原因:如您所见,您的文本就在文本中的“&”符号之前停止 - 这是因为 & 符号是附加另一个查询参数的 URL 组件 - 这需要编码为 %26,幸运的是 JavaScript 有一个函数要做到这一点,encodeURIComponent。创建 params 变量时,您可以encodeURIComponent像这样使用:var&nbsp;params&nbsp;=&nbsp;"history="&nbsp;+&nbsp;encodeURIComponent(hist)&nbsp;+&nbsp;"&mission="&nbsp;+&nbsp;encodeURIComponent(mission);

守着星空守着你

您可以将数据转换为 php 上的 Javascript 可以理解的内容,即var params = ["history" : hist,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; "mission" : mission];params = JSON.stringify( params );然后在 php 端使用:$history = $_POST['history'];$mission = $_POST['mission';
随时随地看视频慕课网APP
我要回答