Bonsoir,

A l'intérieur de mon formulaire, j'ai un champ de cette forme :

<?= $this->Form->input('commande', array(
        'options' => array(
            'Livre "Nom livre"' => 'Livre "Nom livre"',
            'Livre et CD-ROM Théorie' => 'Livre + CD-ROM'
        ),
        'empty' => 'Veuillez sélectionner'
    )); 
?>

Quand j'essaie de sélectionner le 'Livre "Nom livre"', ça ne passe pas, j'obtiens dans le debug de $this->request->data : 'Livre ' (pas de suite, stop dès le premier guillemet double). En gros, CakePHP n'a pas l'air d'apprécier le fait que je mette des guillemets (alors que c'est une simple string ?). J'ai cherché des éventuelles options à ajouter au champ sur la doc, mais je n'ai rien trouvé :/

Est-ce qu'il existe une option pour résoudre ce problème ? Ou dois-je faire autrement ?

Merci d'avance.

5 réponses


Bonsoir,

Ton problème ce situe de quel coté? affichage (html) ou reception (php) ? Je dirait que la conversion asci des " doit foutre unpeu le bordel mais c'est juste une idée ;)

As-tu essayer d’échapper les guillemets?

<?= $this->Form->input('commande', array(
        'options' => array(
            "Livre \"Nom livre\"" => "Livre \"Nom livre\"",
            'Livre et CD-ROM Théorie' => 'Livre + CD-ROM'
        ),
        'empty' => 'Veuillez sélectionner'
    )); 
?>
kinkaz
Auteur

@Marius89 : côté php. J'aimerais enregistrer mon formulaire complet dans la base de données (mais cette information du champ "commande" est incomplète, donc ça m'embête).

@kal-el : oui j'ai tenté d'échapper les guillemets mais sans succès :-(

As tu tenté:

'attributes' => array('escape' => false)

Ce qui donne:

<?= $this->Form->input('commande', array(
        'options' => array(
            'Livre "Nom livre"' => 'Livre "Nom livre"',
            'Livre et CD-ROM Théorie' => 'Livre + CD-ROM'
        ),
        'empty' => 'Veuillez sélectionner',
        'attributes' => array('escape' => false)
    )); 
?>
kinkaz
Auteur

Non, je n'avais pas tenté, mais ça ne résout malheureusement pas le problème.

@tous : merci pour vos suggestions jusqu'à maintenant !