现在我用Google搜索了一下,找不到任何可以帮助我的东西,所以我决定问你。
我有一个从表单收集数据的脚本。不需要来源。
还有一个<textarea id="sample"></textarea>
,其中一些内容被写入。在我的jQuery中使用以下行:
$(document).ready(function(){
var cData = {};
var url = 'http://www.sample.xy/samplefolder/index.php?cData=';
$('#submit_btn').on('click', function(){
//here are some more fields
//...
cData.text = $('#sample').val();
}
var bCode = btoa('{"field_one":"' + cData.field_one + '", "text":"' + cData.text + '"}');
//sending the data...
window.open(url + bCode, '_blank');
});
实际上一切正常。但是在PHP方面我遇到了json问题。
btoa
将我的内容转换为base64字符串。我的PHP源代码如下
$data = base64_decode( $_GET['cData'] ) ;
是什么给我带来了过时的字符串
{"field_one":"i am field one","text":"I am a text over
multiple rows
and this makes me
not valid for json"}
正如您在text
的内容中所注意到的那样,multirow会导致json_decode( ... )
的json验证失败。
所以我的问题是,如何在不丢失换行符的情况下让多行对json有效?因为我需要它们。因为我想使用内容来创建带有FPDF的PDF文件。因此填写<br />
并没有多大帮助。
我在json_encode
之前尝试了json_decode
刚刚重新调整了null
:/