Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [js] Ocena poprawności funkcji
-Wieviór-
post 26.02.2008, 19:43:22
Post #1





Goście







Generalnie napisałem sobie funkcję zmieniania zawartości div'a, tzn. nie zamieniania zawartości, a przełączenia divów. Jestem zupełnie początkujący w js, i napisanie tego mi trochę zajęło, ale się czegoś nauczyłem ;] Zastanawiam się tylko, czy ta funkcja jest w miarę poprawnie napisana? I też, do czego służy to "return false;" w onclick=""?

  1. <script type="text/javascript"><!--
  2. function changeBox(name) {
  3. switch (name)
  4. {
  5. case 'forum':
  6. document.getElementById('forum').style.display='';
  7. document.getElementById('sonda').style.display='none';
  8. document.getElementById('foto').style.display='none';
  9. break
  10. case 'sonda':
  11. document.getElementById('forum').style.display='none';
  12. document.getElementById('sonda').style.display='';
  13. document.getElementById('foto').style.display='none';
  14. break
  15. case 'foto':
  16. document.getElementById('forum').style.display='none';
  17. document.getElementById('sonda').style.display='none';
  18. document.getElementById('foto').style.display='';
  19. break
  20. }
  21. }
  22. //-->
  23. </head>
  24. <a href="#" onclick="changeBox('forum'); return false;">a</a><br>
  25. <a href="#" onclick="changeBox('sonda'); return false;">b</a><br>
  26. <a href="#" onclick="changeBox('foto'); return false;">c</a><br>
  27.  
  28. <div id="forum" style="display: none;">aaaaaaaa</div>
  29. <div id="sonda" style="display: none;">bbbaabbbbb</div>
  30. <div id="foto" style="display: none;">cccccccc</div>
  31. </body>
  32. </html>


Pozdrawiam ;]
Go to the top of the page
+Quote Post
nospor
post 26.02.2008, 19:46:43
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Kod
function changeBox(name) {
document.getElementById('forum').style.display='none';
document.getElementById('sonda').style.display='none';
document.getElementById('foto').style.display='none';

document.getElementById(name).style.display='block';

}

Ciut krocej winksmiley.jpg
Cytat
I też, do czego służy to "return false;" w onclick=""?
zeby przypadkiem ci sie link nie wykonal. ale i tak ci sie nie wykona bo w href dales '#'


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Wieviór-
post 26.02.2008, 20:17:49
Post #3





Goście







No tak mi się właśnie wydawało, że coś robię nie tak i że można krócej ;] to z return false całkiem przydatne ;]

Dzięki za wskazówki i hiperszybką odpowiedź ;]

Teraz piszę funkcję, która zmienia obrazek po najechaniu, ustawiam w onmouseover="" wywołanie tej funkcji. Ale nie wiem jak użyć w tym kodzie "img/costam_on.gif" zmiennej name, bo wstawianie w pojedynczy/podwójny cudzysłów nic nie daje. Jakieś pomysły jak użyć zmiennej w środku?

  1. function overPrawe(name)
  2. {
  3. document.getElementById(name).src="img/'name'_on.gif";
  4. }
Go to the top of the page
+Quote Post
nospor
post 26.02.2008, 20:24:34
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




podstawy laczenia napisow w js...
Kod
document.getElementById(name).src="img/"+name+"_on.gif";

Ale od takich rzeczy to raczej manual/kurs do js.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Wieviór-
post 26.02.2008, 20:35:28
Post #5





Goście







Przepraszam za to, słusznie. Ostatnie pytanie i obiecuję, że się zamykam, to wydaje mi się nieco "trudniejsze":

Przy tej funkcji do zmieniania diva, funkcja changeBox jest wywoływana w <a></a>, w którym jest <img>. Wszystko ładnie działa, tylko po kliknięciu obrazek zostaje zaznaczony, wygląda to dosyć głupio, bo gdyby strona się przeładowywała, to by tego nie było widać, ale tak mam tą głupią linię kropkowaną dookoła. Próbowałem użyć HideFocus i unselectable dla znacznika <img>, ale to nic nie dało. Zastanawiam się jak można się tego pozbyć.

Pozdrawiam ;]
Go to the top of the page
+Quote Post
nospor
post 26.02.2008, 20:39:50
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




daj onclick na obrazku zamiast na linku. Pamietaj tylko o return false. Powinno pomoc


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Wieviór-
post 26.02.2008, 22:07:13
Post #7





Goście







No niestety, to nic nie daje. Zauważyłem, że dzieje się to tylko w Firefoxie i dzięki temu znalazłem rozwiązanie, dodaję w css:

Kod
:focus {
outline: 0;
}


Nie jest to do końca poprawne, bo teraz przy używaniu klawisza Tab, nie widać gdzie się przechodzi itp., ale działa ;] Dzięki za pomoc anyway ;]
Go to the top of the page
+Quote Post
barszczo
post 26.02.2008, 23:17:51
Post #8





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 21.01.2008

Ostrzeżenie: (0%)
-----


Witam
w zasadzie racZkuje w php i mysql ale prosze o rade, przejrzałem juz wiele wątków ale nie potrafie poradzić, będę wdzięczny za pomoc.

mam dwa pliki jeden z menu, a drugi to plik wyswietlający formularz:

I plik:
<html>
<head>
<title>Moja baza danych</title>
<meta http-equiv=content-type content="text/html; charset=iso-8859-2">
</head>
<body>
<h1>Moja baza danych</h1>

<p><strong>Zarz&plusmn;dzanie</strong>
<ul>
<li><a href="dodaj_wpis.php">Dodaj wpis</a></li>
<li><a href="usun_wpis.php">Usuń wpis</a></li></ul></p>

<p><strong>Przegl&plusmn;danie</strong>
<ul>
<li><a href="wybierz_wpis.php">Wybierz rekord</a></li>
</ul><h1></h1>
</p>
</body>
</html>


i drugi 'dodaj_wpis.php' :

<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', 1);
?>

<?php
if (!$_POST) {
//uzytkownik nie widzial jeszcze formularza wiec go ukazuje
$wyswietlany_blok = "<form method=\"post\" action=\"".$_SERVER["PHP_SELF"]."\">
<p><strong>Numer kotła:</strong>
<input type=\"text\" name=\"nr_kotla\" size=\"30\" maxlenght=\"50\"> </p>
<p><strong>Imię klienta</strong>
<input type=\"text\" name=\"imie_klienta\" size=\"30\" maxlenght=\"75\"> </p>
<p><strong>Nazwisko klienta</strong>
<input type=\"text\" name=\"nazwisko_klienta\" size=\"30\" maxlenght=\"75\"> </p>
<p><strong>Telefon</strong>
<input type=\"text\" name=\"telefon\" size=\"30\" maxlenght=\"50\"> </p>
<p><strong>Miejscowosc / ulica i numer domu</strong>
<input type=\"text\" name=\"miejscowosc\" size=\"30\" maxlenght=\"50\"> , <input type=\"text\" name=\"ulica_i_nr_domu\" size=\"30\" maxlenght=\"50\"> </p>
<p><input type=\"submit\" name=\"submit\" value=\"Dodaj_wpis\"></p>
</form>";
}
else if ($_POST)
//połączenie z bazą
$mysqli = mysqli_connect("localhost", "root", "*****", "serwis");

//dodaje dane do tabeli klient (do tabeli glowna wg przykladu w ksiazce)
$dod_klient_sql = "INSERT INTO klient
(nr_kotla, imie_klienta, nazwisko_klienta, telefon, miejscowosc, ulica_i_nr_domu)
VALUES ('".$_POST["nr_kotla"]."', '".$_POST["imie_klienta"]."', '".$_POST["nazwisko_klienta"]."', '".$_POST["telefon"]."', '".$_POST["miejscowosc"]."', '".$_POST["ulica_i_nr_domu"]."')";
$dod_klient_rezul = mysqli_query($mysqli, $dod_klient_sql)
or die (mysqli_error($mysqli));

mysqli_close($mysqli);
$wyswietlany_blok = "Twój wpis został dodany.
Czy chcesz < a href=\"dodaj_wpis.php\"> dodać jeszcze jeden</a>?;

?>

<html>
<head>
<title>Dodawanie do bazy</title>
<meta http-equiv=content-type content=\"text/html; charset=iso-8859-2\">
</head>
<body>
<b><font size=+2>Dodaj nowy wpis do bazy</font></b>
<?php echo $wyswietlany_blok;
?>
</body>
</html>

Po uruchomieniu piewszego pliku gdy klikam na 'Dodaj wpis' nic sie nie dzieje, w przeglądarce nic nie wyskakuje, natomiast w edytorze pojawia się bład:
PHP Parse error: parse error, unexpected $end in D:\PB różne\informatyka\praca_inżynierska\pliki_strona\php130.tmp on line 57

i nie wyświetla się formularz z pliku dodaj_wpis.
Dlaczego tak sie dzieje, dlaczego nie mogę wyświetlić formularza ?

dziękuję
Go to the top of the page
+Quote Post
mokry
post 26.02.2008, 23:26:15
Post #9





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Zawsze możesz w CSS ustawić
Kod
* {
outline:none;
}

wtedy żaden element nie będzie podświetlany przez obwódkę

Ten post edytował mokry 26.02.2008, 23:27:01


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 04:24