Envoyer des retours à la ligne dans un champ rempli via API

Bonjour,

Je souhaite populer le champ note publique ou note privee via API.
Le problème est que je souhaite entrer des infos du type:

Numéro du PDL: 123456
Numéro de contrat: 987654

J’ai essayé d’envoyer Numéro du PDL: 123456\nNuméro de contrat: 987654 ou Numéro du PDL: 123456\nNuméro de contrat: 987654

Mais dolibarr insère des caractères d’échappement , si bien que je ne parviens pas à faire des retours à la ligne.

J’ai rentré en GUI ces informations et en utilisant l’API explorer je vois que c’est un \r\n qui est utilisé pour faire un retour à la ligne.
Mais lorsque je l’envoie via API c’est un \r\n qui est inséré dans Dolibarr.

Comment faire ?

Bonjour
Avez vous essayé de mettre du html ?

<br/>

Par exemple
@+

Bonjour Phil,

En effet, cela fonctionne bien avec cette balise.

Par contre, en interne dans Dolibarr on a \r\n dans un cas et
dans l’autre.
Si bien que lorsque j’édite le champ avec le stylo, j’ai une balise
dans mon texte.
image

Il vous suffit d’activer wysiwyg dans les notes.
@+

Bonjour,

je n’ai pour ma part aucun problème pour envoyer des retours à la ligne avec "\n".
Comment encodez vous votre chaine de caractères pour l’envoyer à l’API ?

Bonjour @Beers,

Je n’ai mis aucun encodage mais suite à ton message j’ai indiqué
Content-Type: application/json; charset=utf-8
Et cela ne fonctionne pas mieux.

Quand tu dis que ça fonctionne chez toi, y parviens-tu sur les notes publiques ?

Pour obtenir un retour chariot il faut envoyer le caractère retour chariot. \n est une convention de représentation du caractère retour chariot, ce n’est pas un retour chariot. Il faut que les deux caractères \n soit transformés en retour chariot avant de les envoyer à l’API.

En php \n entre simples quotes ne sera pas évalué, alors qu’entre doubles quotes il le sera.

Si j’envoie ça par exemple j’ai des retours chariots en note_public, mais pas en note_private

        $url = 'api/index.php/products/7';
        $response = $client->request(
            'PUT',
            $url,
            [
                'json' => [
                    'note_public' => "test\ntest\ntest",
                    'note_private' => 'test\ntest\ntest',
                ]
            ]
        );

c’est pas flagrant avec la mise en forme du code sur discourse, mais avec un éditeur de texte la différence va se voir de suite

Merci @Beers pour ta réponse.

J’ai changé mon script pour le debug et ca fonctionne.
"note_public" => "ligne1\nligne2",

Par contre à l’origine je lisais les données provenant d’un fichier
"note_public" => $l[18],

Et c’est dans ce cas, que je constate le problème.