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

Javascript, formularz tekstowy

Object Storage Arubacloud
0 głosów
247 wizyt
pytanie zadane 7 czerwca 2023 w JavaScript przez darknode Początkujący (430 p.)

Witam, chciałbym spytać, czy ktoś może wie, jak dołączyć 2 wartości w tej linijce kodu

new Image().src="komentarze.php?post="+escape(f.post.value)+"&t="+znacznik;
 f.post.value="";

mianowicie problem polega na tym, ze posiadam na stronie dwa inputy, jeden do wpisania nicku a drugi do wpisania komentarza, w tym przypadku działa tylko jeden z dwóch... a chciałbym, by w tym kodzie co podałem, działała zawartość nicku oraz komentarza jednocześnie  (name="nick" + name="komentarz"). Pozdrawiam.

1 odpowiedź

0 głosów
odpowiedź 7 czerwca 2023 przez VBService Ekspert (253,280 p.)
edycja 7 czerwca 2023 przez VBService

Zamiast escape proponuję użyć encodeURIComponent i użyć zarówno na post.value jak i znacznik, podejrzewam, że znacznik może zawierać znaki (characters), które "psują" link.

Przykład on-line.

  const src = 'komentarze.php?post=' + encodeURIComponent(f.post.value) 
                                     + '&t=' + encodeURIComponent(znacznik);

  new Image().src = src;

 

 

P.S.1 When are you supposed to use escape instead of encodeURI / encodeURIComponent?

P.S.2 oczywiście w kodzie php dekodujemy za pomocą urldecode()

W oparciu o zaprezentowany przez Ciebie kod przykład

    $nick = urldecode($_GET['post']) || null;
    $komentarz = urldecode($_GET['t']) || null;

    if ($nick && $komentarz) {
        echo 'Nick: ' . $nick . '<br>';
        echo 'Komentarz: ' . $komentarz;
    }

 

komentarz 7 czerwca 2023 przez darknode Początkujący (430 p.)

Niestety, żadna z tych opcji nie zadziałała u mnie
Mój kod js wygląda następująco

 function chat(f) {
 znacznik = new Date().getTime();
 new Image().src="post.php?nick="+(f.nick.value)+"&t="+znacznik;f.nick.value="";
 return false;
  }
 function aktualizacja() {
 window.r1.location="komentarze.php";
  }

Wszystko działa, komentarze dodają się bez odświeżania strony, jednak działa tylko sam nick lub samo pole wpisywania komentarzy, w zależności, czy zmienie na (nick) czy (komentarz)  problem polega na tym, czy można skleić 2 nazwy ze sobą w odcinku kodu

src="post.php?nick="

Czyli nick + komentarz =" ? próbuje na różne sposoby i tylko tutaj występuje problem.

komentarz 7 czerwca 2023 przez darknode Początkujący (430 p.)

@VBService,  Już zrobiłem, pobawiłem się i ostatecznie wyszło mi coś takiego:

 new Image().src="komentarze.php?nick="+(f.nick.value)+"&komentarz="+(f.komentarz.value);+znacznik; f.nick.value=""; f.komentarz.value="";  return false;

teraz wszystko działa :) dziękuję za pomoc!

komentarz 8 czerwca 2023 przez VBService Ekspert (253,280 p.)
edycja 8 czerwca 2023 przez VBService

@darknode, działo się tak dlatego, że nie pobierałeś tekstu z  

f.komentarz.value

w pierwszej wersji zaprezentowanego przez Ciebie kodu, przyjąłem, że zmienna znacznik do tego "służy"

"&t="+znacznik

jakbyś podał wcześniej pełną wersję kodu

function chat(f) {
  znacznik = new Date().getTime();
  new Image().src="post.php?nick="+(f.nick.value)+"&t="+znacznik;f.nick.value="";
  return false;
}

było by prościej, Mój błąd, że nie dopytałem o więcej szczegółów  wink.

 

IMO Twoja funkcja pełna powinna wyglądać tak, chyba, że już nie potrzebujesz

znacznik = new Date().getTime();
"&t="+znacznik

 

function chat(f) {
  cosnt znacznik = new Date().getTime();
  new Image().src = "komentarze.php?nick="+(f.nick.value)+"&komentarz="+(f.komentarz.value)+"&t="+znacznik;
  f.nick.value = "";
  f.komentarz.value = "";
  return false;
}

 

1
komentarz 8 czerwca 2023 przez darknode Początkujący (430 p.)
Nic nie szkodzi, wszystko już działa, więc póki co nie bedę zmieniał :)
Dziękuję za pomoc!

Podobne pytania

0 głosów
1 odpowiedź 253 wizyt
pytanie zadane 31 stycznia 2017 w JavaScript przez Psor Nowicjusz (190 p.)
0 głosów
1 odpowiedź 3,629 wizyt
pytanie zadane 4 kwietnia 2018 w JavaScript przez Al3x Użytkownik (870 p.)
+1 głos
1 odpowiedź 626 wizyt

92,566 zapytań

141,420 odpowiedzi

319,607 komentarzy

61,952 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...