Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Javascript值在'之后被切断&';性格_Javascript_Ajax - Fatal编程技术网

Javascript值在'之后被切断&';性格

Javascript值在'之后被切断&';性格,javascript,ajax,Javascript,Ajax,因此,我对Javascript和Ajax比较陌生,并使用它们将数据提交到数据库进行实时更新,但我注意到,当输入/文本区域中输入了一个“&”字符时,当我获得该值时,它会将“&”后面的字符串切断 我已经在下面的代码行之后使用alert函数测试了该值,完整的字符串在那里,但不确定如何修复 我试图用替换“&”字符&但无法使其工作。下面是我用来获取值和尝试使用的替换。注意:我使用的是nicEditor,必须使用代码的第一行从编辑器中存储文本的适当字段中获取文本 你们中有人以前遇到过这种情况吗?我非常

因此,我对Javascript和Ajax比较陌生,并使用它们将数据提交到数据库进行实时更新,但我注意到,当输入/文本区域中输入了一个“&”字符时,当我获得该值时,它会将“&”后面的字符串切断

我已经在下面的代码行之后使用alert函数测试了该值,完整的字符串在那里,但不确定如何修复

我试图用
替换“&”字符&但无法使其工作。下面是我用来获取值和尝试使用的替换。注意:我使用的是nicEditor,必须使用代码的第一行从编辑器中存储文本的适当字段中获取文本

你们中有人以前遇到过这种情况吗?我非常感谢您的帮助,如果您需要更多的代码,请告诉我。我可以提供

*********更新完整代码*********

这是完整的代码

JS/AJAX:

$(function() {
            //Update Message...
            $(".update_button").click(function() {
                //var boxval = $("#statusContent").val();
                var boxval = $('#statusContentForum').find('.nicEdit-main').text();
                var dataString = 'statusContent='+ boxval;

                //var dataString = dataString.replace(/>/g, '>');
                //var dataString = dataString.replace(/</g, '&lt;');
                var dataString = dataString.replace(/&/g, '&amp;');
                var dataString = dataString.replace(/\|&;\$%@"<>\(\)\+,/g, "");

                if(boxval=='') {
                    alert("Please Enter Some Text");
                } else {
                    $("#flash").show();
                    $("#flash").fadeIn(400).html('<img src="images/ajax-loader.gif" align="absmiddle"> <span class="loading">Loading Comment...</span>');
                    //  alert(dataString);
                    //  throw new Error("Something went badly wrong!");
                    $.ajax({
                        type: "POST",
                        url: "ajax/statusPost.php",
                        data: dataString,
                        cache: false,
                        success: function(html){
                            $("ol#update").prepend(html);
                            $("ol#update li").slideDown("slow");
                            var clearVal = nicEditors.findEditor("statusContent");
                            clearVal.setContent("");
                            $("#flash").hide();
                        }
                    });
                } return false;
            });
});
$(函数(){
//更新消息。。。
$(“.update_按钮”)。单击(函数(){
//var-boxval=$(“#statusContent”).val();
var-boxval=$(“#statusContentForum”).find(“.nicEdit main”).text();
var dataString='statusContent='+boxval;
//var dataString=dataString.replace(/>/g',);

//var dataString=dataString.replace(/您正在手动构造,但未正确编码
&
。要将
&
表示为该格式的数据,需要将其替换为
%26

encodeURIComponent
函数将为您完成此操作

但是,您使用的是jQuery,因此根本不应该手动执行。请传递对象而不是字符串

data: {
    statusContent: boxval
},

我假设您熟悉其他编程语言,甚至可能熟悉关键字或敏感字符。请始终记住,将其作为解决问题的第一个解决方案。在这种情况下,就是这样。如果您为该变量编码字符串,您正在设置它,它应该可以正常工作

尝试用控制台记录它

console.log(encodeURIComponent('My Var: ' + dataString));

更多信息,请参见此处:

问题可能是您试图将字符串格式化为HTML格式,而不是通过HTTP发送字符串所使用的任何格式…但是您没有提供尝试通过HTTP发送字符串的代码。我将在另一个答案中为您提供完整的代码。我没有想到这一点。Lol不要回答问题提供有关问题的更多详细信息。改为编辑问题。若要向问题添加更多信息,或以任何方式对其进行编辑,只需单击问题标签下方的链接。您无需发布“其他答案”(或问题)。如果您发布答案以提供澄清,则会将其标记为“非答案”和/或被否决。发布另一个问题(不首先关闭此问题)将导致其中一个问题作为重复问题关闭。两个问题都有(当然是次要问题)惩罚。我真的很感谢你的帮助。我正在努力学习和理解每件事,但同时我不想用问题纠缠你,但我如何应用数据:{你建议的一部分?我只是把它放在var dataString所在的地方吗?@logicK-你只是把它放在
data:dataString
所在的地方,然后去掉所有与
dataString
相关的东西。我想我做错了什么。我无法让它正常工作,并尝试在谷歌上搜索“javascript将数据传递给一个对象”,你能给我举个例子吗?你只是用我答案中的三行替换了我评论中的那一行。很遗憾,我无法让它工作。::我确实让encodeURIComponent工作了。
$(function() {
            //Update Message...
            $(".update_button").click(function() {
                //var boxval = $("#statusContent").val();
                var boxval = $('#statusContentForum').find('.nicEdit-main').text();
                var dataString = 'statusContent='+ boxval;

                //var dataString = dataString.replace(/>/g, '&gt;');
                //var dataString = dataString.replace(/</g, '&lt;');
                var dataString = dataString.replace(/&/g, '&amp;');
                var dataString = dataString.replace(/\|&;\$%@"<>\(\)\+,/g, "");

                if(boxval=='') {
                    alert("Please Enter Some Text");
                } else {
                    $("#flash").show();
                    $("#flash").fadeIn(400).html('<img src="images/ajax-loader.gif" align="absmiddle"> <span class="loading">Loading Comment...</span>');
                    //  alert(dataString);
                    //  throw new Error("Something went badly wrong!");
                    $.ajax({
                        type: "POST",
                        url: "ajax/statusPost.php",
                        data: dataString,
                        cache: false,
                        success: function(html){
                            $("ol#update").prepend(html);
                            $("ol#update li").slideDown("slow");
                            var clearVal = nicEditors.findEditor("statusContent");
                            clearVal.setContent("");
                            $("#flash").hide();
                        }
                    });
                } return false;
            });
});
<form name="newstatus" id="statusContentForum" action="profile.php" method="post" class="commentForm">
    <textarea name="statusContent" id="statusContent" placeholder="What's on your mind?"></textarea>
    <input type="submit" value="Update" name="submit" class="update_button"/>
</form>
data: {
    statusContent: boxval
},
console.log(encodeURIComponent('My Var: ' + dataString));