• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Znikający tekst w polach formularza

42 Warsaw Coding Academy
0 głosów
129 wizyt
pytanie zadane 11 października 2024 w HTML i CSS przez Dommy Nowicjusz (180 p.)

Witam. Posiadam kod formularza, którego fragment jest pokazany poniżej.

Kod w pliku „index.html”:

<form method='POST' action="wprowadzenie_zapyt_do_bazy.php">      
(…)
<label for="opis_czesci">nazwa / opis</label>
          <input type="text" id="opis_czesci" name="opis_czesci" maxlength= 30 autofocus required ><br />
(…)
</form>

Dane z formularza są sprawdzane w pliku „wprowadzenie_zapyt_do_bazy.php” i wypadku ewentualnych błędów formularz jest wyświetlany ponownie w celu wprowadzenia poprawek przez użytkownika. Aby użytkownik nie musiał wypełniać całego formularza od początku wprowadzone przez niego dane są pozostawione w formularzu i wyświetla się jedynie komunikat o konieczności wprowadzenia poprawek. Kod zamieszczony poniżej.

Fragment kodu w pliku „wprowadzenie_zapyt_do_bazy.php”

<form method='POST' action="wprowadzenie_zapyt_do_bazy.php">      
          <label for="producent_maszyny">producent maszyny</label>
(…)
<label for="opis_czesci">nazwa / opis</label>
          <input type="text" id="opis_czesci" name="opis_czesci" maxlength= 30 value=<?=  htmlspecialchars($czesc['opis_czesci']) ?> ><br />
(…)
</form>

Niestety we wprowadzonych danych w pliku „index.html” i ich wyświetleniu w „wprowadzenie_zapyt_do_bazy.php”, w polach formularz znikają teksty wprowadzone po spacji. Np. kiedy wpisano „De Walt” po ponownym wyświetleniu zostaje „De”. Jeżeli użytkownik nie zauważy błędu, tekst w takiej postaci jest wpisywany do bazy.

Oczywiście w wypadku poprawnego wpisanie danych w pliku „index.html” dane są od razu wprowadzane do bazy i wszystko jest Ok.

Zmieniałem    htmlspecialchars($czesc['opis_czesci'])  

na     strip_tags($czesc['opis_czesci'])  

lub pozostawiałem samo ($czesc['opis_czesci']). Bez zmian.

Czy ktoś miałby jakieś sugestie?

1 odpowiedź

0 głosów
odpowiedź 11 października 2024 przez Comandeer Guru (607,060 p.)
wybrane 11 października 2024 przez Dommy
 
Najlepsza

Jeśli wartość atrybutu value nie jest otoczona cudzysłowem, to każda spacja tak naprawdę tworzy nowy atrybut, np. wartość "De Walt" generuje taki HTML:

<input type="text" id="opis_czesci" name="opis_czesci" maxlength= 30 value=Die Walt >

Wystarczy dodać cudzysłów, żeby parser HTML wiedział, gdzie dokładnie kończy się wartość atrybutu:

<input type="text" id="opis_czesci" name="opis_czesci" maxlength= 30 value="<?=  htmlspecialchars($czesc['opis_czesci']) ?>" >

 

komentarz 11 października 2024 przez Dommy Nowicjusz (180 p.)
Dziękuję za błyskawiczna reakcję i odpowiedź. Pomogło!!!

Podobne pytania

+1 głos
2 odpowiedzi 1,409 wizyt
pytanie zadane 7 grudnia 2020 w HTML i CSS przez xano Początkujący (300 p.)
0 głosów
3 odpowiedzi 364 wizyt
pytanie zadane 31 marca 2020 w HTML i CSS przez jupikajej Początkujący (440 p.)
0 głosów
1 odpowiedź 752 wizyt
pytanie zadane 24 września 2019 w HTML i CSS przez Bartpianista Nowicjusz (140 p.)

93,395 zapytań

142,389 odpowiedzi

322,569 komentarzy

62,754 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...