Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] Problem z alertem
Forum PHP.pl > Forum > Przedszkole
cusek
Witajcie, mam problem mianowicie alert który wyskakuje po nie wypełnieniu jakiegoś pola na
http://74.54.249.87/cusek/kokon/index.php?strona=kalkulator jest poprawy tylko otwiera on się po przeładowaniu strony jak zrobić aby nie przeładowywał strony?
Kod:
http://www.nopaste.pl/99h
Method
ekspertem od javyscript nie jestem i unikam jej, ale tak na pierwszy rzut oka to wszystko ladujesz w wielkiego ifa
a "wyjatek" masz taki
  1. else echo "<script type=\"text/javascript\">window.alert('Nie wypełniłes pola w formularzu!');</script>";


wydaje mi się że chcesz zrobić coś takiego co jest opisane tu: http://www.yourhtmlsource.com/javascript/formvalidation.html
może by sie przydalo i to: http://www.javascript-coder.com/html-form/...alidation.phtml
cusek
mógłbyś mi to jakoś poprawić bo ja wogóle się gubie
kefirek
Robisz cos takiego
  1. <?php
  2. if(isset($_POST['submit'])) {
  3.  
  4.  
  5. echo 'Wszystko ok';
  6.  
  7. } else{
  8. <form name='test' method='post' action='".basename($_SERVER['PHP_SELF'])."' onsubmit='return sprawdz(this)'>
  9. <input type='text' name='nr'/>
  10. <input type='text' name='nazwa'/>
  11. <input type='submit' name='submit' value='Zapisz'/>
  12. </form>";
  13.  
  14. echo "<script type='text/javascript'>
  15. function sprawdz(frm) {
  16. if (frm.nr.value==\"\") {
  17.  alert(\"Podaj nr\");
  18.  return false;
  19. }
  20.  if (frm.nazwa.value==\"\") {
  21.  alert(\"Podaj nazwe\");
  22.  return false;
  23. }
  24.  
  25.  
  26. }
  27. </script>\n";
  28. }
  29. ?>


Przyklad dzialania tutaj http://www.gc.boo.pl/test.php
cusek
tak tylko jak to teraz wmontować w tamtego php?
kefirek
O bosz normalnie do <form

Dodajesz onsubmit='return sprawdz(this)'

Potem pod formularzem

  1. <?php
  2. echo "<script type='text/javascript'>
  3. function sprawdz(frm) {
  4. if (frm.nr.value==\"\") {
  5. alert(\"Podaj nr\");
  6. return false;
  7. }
  8.  
  9.  
  10. }
  11. </script>\n";
  12. ?>


Gdzie
Kod
if (frm.nr.value==\"\") {
alert(\"Podaj nr\");
return false;
}


złóży do prawdzenie jednego pola przy czym
Kod
frm.nr.value==\"\")
po frm podajesz nazwe pola i dodajesz to tyle razy ile chcesz pól w formurzu sprawdzać np.

  1. <?php
  2. echo "<script type='text/javascript'>
  3. function sprawdz(frm) {
  4. if (frm.nr.value==\"\") {
  5.  alert(\"Podaj nr\");
  6.  return false;
  7. }
  8.  if (frm.nazwa.value==\"\") {
  9.  alert(\"Podaj nazwe\");
  10.  return false;
  11. }
  12.  if (frm.nazwainna.value==\"\") {
  13.  alert(\"Podaj nazwe\");
  14.  return false;
  15. }
  16.  if (frm.jaksnazwa.value==\"\") {
  17.  alert(\"Podaj nazwe\");
  18.  return false;
  19. }
  20.  
  21.  if (frm.jeszczeinana.value==\"\") {
  22.  alert(\"Podaj nazwe\");
  23.  return false;
  24. }
  25.  
  26.  
  27.  
  28.  
  29. }
  30. </script>\n";
  31. ?>


Łatwiej wytłumaczyć nie umiem.
cusek
ten sposób mi nie odpowiada, dlatego że on będzie sprawdzał każde pole i każdy błąd inna etykieta, ten alert który ja dostaje jest dobry ale odświeża stronę da się to jakoś przerobić?
nospor
@cusek to zamiast walic za kazdym razem alerta to zrob jednego zbiorczego. No wysil sie chlopie.... dostalek kod co dziala git, wystarczy ze dopasujesz sobie
kefirek
O bosz w czym problem zrób tak będzie sprawdzać wszystkie naraz
  1. <?php
  2. echo "<script type='text/javascript'>
  3. function sprawdz(frm) {
  4. if (frm.nr.value==\"\" || frm.nazwa.value==\"\") {
  5.  alert(\"Wypelnij wszystkie pola\");
  6.  return false;
  7. }
  8.  
  9.  
  10.  
  11. }
  12. </script>\n";
  13. ?>
cusek
jestem w tym słaby więc proszę mnie tak nie gnoić:) obiecuje naukę po skończeniu tej strony.
Wkleiłem to tak
Kod
// zmienna $header zawiera przede wszystkim adres zwrotny
    $header = "From: $_POST[imie] <$_POST[email]>";
    //zmienna $temat w której b&ecirc;dzie zawartoœ&aelig; tematu wiadomoœci
    $temat = "Formularz obliczenia składki od $_POST[imie], $_POST[email]";
    // funkcja mail() za pomocą której wiadomoœ&aelig; zostanie wys&sup3;ana
    @mail("cusek92@gmail.com",$temat, $message, $header)
    or die('</br>Nie udało się obliczyć składki powiadom administratora serwisu<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>');
[b]    echo "<script type='text/javascript'>
function sprawdz(frm) {
if (frm.nr.value==\"\" || frm.nazwa.value==\"\") {
alert(\"Wypelnij wszystkie pola\");
return false;
}



}
</script>\n";[/b]
    echo "<div align=\"center\"><strong><br/>Dane zostały wysłane do naszego agenta, który skontaktuje się z Tobš z gotowš ofertš.<br/></br><br/>Jednak już teraz wiesz że twoja składka wynosić będzie:</br><br/>Xzł przy 6 miesišcach,<br/><br/>xzł przy 12 miesišcach.<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/></strong></div>";


i po kliknięciu "dalej" dostaje pustą stronę.
erix
Cytat
jestem w tym słaby więc proszę mnie tak nie gnoić:) obiecuje naukę po skończeniu tej strony.

Trzeba było na odwrót zrobić. tongue.gif Teraz to wszystko wychodzi...

Mógłbyś używać innego bbcode, specjalnie dla PHP, bo ciężko kod czytać.

A co do problemu:
Cytat
jest poprawy tylko otwiera on się po przeładowaniu strony jak zrobić aby nie przeładowywał strony?

Nie masz na tamtej stronie funkcji sprawdz; czasem popatrz, co pluje konsola błędów przeglądarki.

Ad. pustej strony: wywal małpiszona sprzed mail" title="Zobacz w manualu PHP" target="_manual; najlepiej zapomnij o jego istnieniu i błędy łap przez własny handler, bo z zoo w kodzie baboli nie znajdziesz. winksmiley.jpg Małpy Ci je schowają.

Użyj jakiegoś porządnego IDE do PHP, aby Ci składnię sprawdził, bo na bank gdzieś masz błąd w składni.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.