在我的Vue组件中,我使用axios.post将数据发送到我的PHP后端
const formData = new FormData()
const form_data = JSON.stringify( this.form_fields ).toString()
formData.append( 'form_data', form_data )
axios.post( url, formData )
.then(response =>
console.log(response))
form_data中的数据如下:
[{"title": "any title", "content":"any content"}, {"title": "any title", "content":"any content"}]
在PHP中,字符串看起来像
[{\"title\": \"any title\", \"content\":\"any content\"}, {\"title\": \"any title\", \"content\":\"any content\"}]
我用str_replace删除\“,然后我将字符串序列化以保存在后端。
不幸的是,如果我的文本包含换行符,则无法保存内容。
如何在不丢失任何内容的情况下将数据发送到php? html格式的信息也没有保存到我的数据库中。
字符串的外观如何?
答案 0 :(得分:1)
JSON字符串看起来很好,不需要更改。请记住,HTML分行符<br/>
在此步骤中不会转换为\n
。
问题出在PHP端,您将\
替换为字符串str_replace,这很可能也会弄乱新行\n
字符。
尝试在php中对JSON字符串进行适当的反序列化:
$decoded = json_decode($jsonString);
尝试从$decoded
数组中获取值。 (他们应该没问题,还可以换行。)
答案 1 :(得分:0)
代替这样做:
const formData = new FormData()
const form_data = JSON.stringify( this.form_fields ).toString()
formData.append( 'form_data', form_data )
相反,这样做:
var form = $("#formId")[0]; //Select your form with, say, id='formId'
var formData = new FormData(form);
要在PHP中获取POSTed
值,可以遍历POST
数组,也可以单独获取它们。例如:
$something = $_POST['formElementName']; //formElementName is the name attribute of the element in your form
答案 2 :(得分:0)
我有一个管理字符串的功能
function get_serialized_string( $data ) {
$post = str_replace( '\"', '"', $data );
$post = str_replace('<p><br></p>', '', $post );
$post = str_replace( '\n', '"', $post );
return serialize( json_decode( ( $post ) ) );
}
但是我仍然无法保存内容。
如果我的文本区域中包含一个链接,该链接的颜色为rgba(0,0,0,2.5),则它将返回null。
我的头文件中的axios数据
[{\"name\":\"Stanley\",\"email\":\"stan@stan.de\",\"description\":\"<p>Lorem ipsum dolor sit amet, <span style=\\\"color: rgb(230, 0, 0);\\\">consetetur sadipscing elitr,</span> sed diam nonumy eirmod tempor invidunt ut labore et </p><p><br></p>\",\"website\":\"https://test.de\"}]
我该如何翻译.i的字符串:
a:1:{i:0;O:8:"stdClass":4:{s:4:"name";s:7:"Stanley";s:5:"email";s:12:"stan@stan.de";s:11:"description";s:83:"<p>Lorem ipsum dolor sit amet, sed diam nonumy eirmod tempor invidunt ut labore</p>";s:7:"website";s:15:"https://test.de";}}
如果我不设置文本颜色的格式,它将起作用