脚本宝典收集整理的这篇文章主要介绍了php – 如何通过包含&符号和/或换行符的ajax传递textarea数据?,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
// Find all the fields wITh class dirty $('#customer .dirty').each(function() { fieldName = $(this).attr('id'); fieldValue = $(this).val(); // Create an object of dirty field names and values VAR fields = { 'fieldName' : fieldName,'value' : fieldValue }; // Add the object of field names and values to the custRecordToUpdate array custRecordToUpdate.push(fields); // note: this was initialized before }); var arrayToSend = { customer : custRecordToUpdate }; var dataToSend = JSON.stringify(arrayToSend);
textarea值如下:
1/8 CLEAR MIRROR 3/8 CLEAR GLASS
如果我是console.LOG(dataToSend),我会得到以下内容:
{"customer":[{"fieldName":"cust_note","value":"1/8 CLEAR MIRROR\n3/8 CLEAR GLASS"}]}
在PHP脚本上,我json_decode发布的数据,它正常工作.
如果我然后将textarea更改为包含&符号,如下所示:
1/8 CLEAR MIRROR 3/8 CLEAR GLASS & GLASS
json_decode失败了. console.log(dataToSend)显示以下内容:
{"customer":[{"fieldName":"cust_note","value":"1/8 CLEAR MIRROR\n3/8 CLEAR GLASS & GLASS"}]}
如果我将上面的js代码更改为:
fieldValue = encodeURIcomponent($(this).val());
然后console.log(dataToSend)显示:
{"customer":[{"fieldName":"cust_note","value":"1%2F8%20CLEAR%20MIRROR%0A3%2F8%20CLEAR%20GLASS"}]}
和json_decode失败,两个数据情况都有语法错误.
那么,如何通过ajax将包含换行符和&符号的textarea数据发送到PHP后端,并让json_decode不会失败?
解:
基于下面的一些评论,我决定更改发送数据的ajax代码,这解决了问题,虽然我不知道为什么.
var returnedHTML = $.ajax({ tyPE: "POST",url: 'index.PHP/customer/save_edit_customer',//data : "data="+dataToSend,// This is how I was sending it before data : { "data" : dataToSend },// This is the new code that works! async: false,cache: false }).responseText;
以上是脚本宝典为你收集整理的php – 如何通过包含&符号和/或换行符的ajax传递textarea数据?全部内容,希望文章能够帮你解决php – 如何通过包含&符号和/或换行符的ajax传递textarea数据?所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。