Apostrofy w input Kategoria: Codeigniter | Autor: Bartłomiej Gałęzia

W Codeigniterze (a właściwie w samym php) występuje pewien problem z apostrofami jeśli są zapisywane w bazie i ponownie wyświetlane w polu input w formularzu.

Jako przykładu użyję pola Model w bazie Samochody.

Po dodaniu rekordu wyświetla się on poprawnie.

Natomiast problem pojawia się przy edycji tego rekordu kiedy znak apostrofu jest wyświetlany w polu input:

Zamiast jego znaku pojawiają się 'krzaczki' ASCII.

Dzieje się tak przy domyślnych ustawieniach pola input:

<?php
$data = array(
   'name' => 'car_model',
   'value' => set_value('car_model', $row->car_model),
   'class' => 'form-control',
   'placeholder' => 'Model',
   'type' => 'text',
);
echo form_input($data);
?>

Aby z tego wybrnąć należy dodać html_entity_decode() do funkcji set_value oraz zmienić ostatni parament na FALSE:

...
'value' => set_value('car_model', html_entity_decode($row->car_model, ENT_QUOTES, 'UTF-8'), FALSE)
...

Teraz formularz będzie wyświetlał poprawną wartość:

Dodaj komentarz

Brak komentarzy, bądź pierwszy i dodaj swój komentarz