laravel Explode不适用于来自JS的字符串[关闭]

hsgswve4  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(86)

已关闭。此问题需要更多focused。它目前不接受回答。
**希望改进此问题?**更新问题,使其仅针对editing this post的一个问题。

昨天关门了。
Improve this question
JavaScript

<script>
    // when button clicked
    let tags = 'foo,bar';
    elem.innerHTML += `<x-post tags="${tags}"></x-post>`
</script>

字符串
post.blade.php

@php
    var_dump($tags); // string(9) "foo,bar"
    $tags = explode(',',$tags); // exploding
    echo "<br>";
    var_dump($tags); // array(1) { [0] => string(9) "foo,bar"} 
@endphp


我该怎么解决?为什么在我写tags="foo,bar"的时候它能正常工作?
预期:带有foo和bar的数组。
尝试:JSON.stringify(),array,array with JSON.stringify() .
实际上,我通过 AJAX 发送了一个带有标签的帖子,这样他们就可以在点击按钮后加载,就像分页一样。它可以在没有标签的情况下工作,但是这样的问题已经出现了。
也许你知道我通常如何发送一个数组到一个刀片组件,比如在php中?


的数据

7vux5j2d

7vux5j2d1#

您发送的tags是带双引号的字符串文本,即<x-post tags="${tags}"></x-post>,因此它返回$tags 9的总长度。
不带双引号,

<script>
//in JS
let tags = 'foo,bar';
elem.innerHTML += `<x-post tags=${tags}></x-post>`
</script>

// post.blade.php
@php
    var_dump($tags); // string(7) "foo,bar"
    $tags = explode(',',$tags); // exploding
    echo "<br>";
    var_dump($tags); // array(2) { [0]=> string(3) "foo" [1]=> string(3) "bar" } 
@endphp

字符串
希望对你有帮助:)

3b6akqbq

3b6akqbq2#

这可以通过创建附加组件来解决。
毕竟,问题是我试图在php中处理字符串

let html = '';
html += `<x-post title=${post.title}>${post.content}`;
tags.forEach(function(tag){
    html += `<x-tag>${tag.name}</x-tag>`;
})
html += `</x-post>`;
elem.innerHTML += html;

字符串

相关问题