Wieviór
26.02.2008, 19:43:22
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=""?
<script type="text/javascript"><!-- function changeBox(name) {
switch (name)
{
case 'forum':
document.getElementById('forum').style.display='';
document.getElementById('sonda').style.display='none';
document.getElementById('foto').style.display='none';
break
case 'sonda':
document.getElementById('forum').style.display='none';
document.getElementById('sonda').style.display='';
document.getElementById('foto').style.display='none';
break
case 'foto':
document.getElementById('forum').style.display='none';
document.getElementById('sonda').style.display='none';
document.getElementById('foto').style.display='';
break
}
}
//-->
<a href="#" onclick="changeBox('forum'); return false;">a
</a><br> <a href="#" onclick="changeBox('sonda'); return false;">b
</a><br> <a href="#" onclick="changeBox('foto'); return false;">c
</a><br>
<div id="forum" style="display: none;">aaaaaaaa
</div> <div id="sonda" style="display: none;">bbbaabbbbb
</div> <div id="foto" style="display: none;">cccccccc
</div>
Pozdrawiam ;]
nospor
26.02.2008, 19:46:43
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

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 '#'
Wieviór
26.02.2008, 20:17:49
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?
function overPrawe(name)
{
document.getElementById(name).src="img/'name'_on.gif";
}
nospor
26.02.2008, 20:24:34
podstawy laczenia napisow w js...
Kod
document.getElementById(name).src="img/"+name+"_on.gif";
Ale od takich rzeczy to raczej manual/kurs do js.
Wieviór
26.02.2008, 20:35:28
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 ;]
nospor
26.02.2008, 20:39:50
daj onclick na obrazku zamiast na linku. Pamietaj tylko o return false. Powinno pomoc
Wieviór
26.02.2008, 22:07:13
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 ;]
barszczo
26.02.2008, 23:17:51
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±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±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ę
mokry
26.02.2008, 23:26:15
Zawsze możesz w CSS ustawić
Kod
* {
outline:none;
}
wtedy żaden element nie będzie podświetlany przez obwódkę