Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: onclick coś nie działa
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Majcon
Kod
<script type="text/javascript">
function sprfor(aform)
{
if(aform.data.value==""){
alert("Podaj date");
return false;
}else{
<?php
$tekst = "Jakiś tekst";
?>
document.getElementById('log').innerHTML = <?php echo $tekst; ?>;
return true;
}
}
</script>
<center>
<form action="" method="POST">
<b>Dzien:</b><br>
<select name="data">
<optgroup label="data">
<option></option>
<? echo $eee;?>
</optgroup>
</select>
<br><br>
<INPUT TYPE="button" VALUE='ddd' onClick="sprfor(this);"></input></form>


ma ktoś może pomysł dlaczego to nie działa ? chodzi o to że po kliknieciu w przycisk ddd żeby się wykonała funkcja sprfor która sprawdza czy formularz został dobrze wypełniony jeżeli tak to wyświetli tekst który jest pod zmienną $tekst ;p

zapomniałem dodać aktualnie po kliknięciu nic się nie dzieje ;D
sajegib
Spróbuj zmienić (this) na konkretny element
Majcon
czyli co tam dac bo ja trochę początkujący w javascript jestem ;D
kamil4u
Po prostu mieszasz PHP z JS w nieumiejętny sposób. Sprawdź sobie w źródle strony jaki kod Ci wyszedł.

Kod
document.getElementById('log').innerHTML = <?php echo $tekst; ?>;

W wyniku będzie brakowało "

Drugi błąd:
Kod
onClick="sprfor(this);

this wskazuje na ten konkretny element. Tobie chodzi o formularz, czyli daj this.form

Sprawdzaj konsolę błędów JS.
Majcon
Albo mógłby mi ktoś pokazać prostą przykład gdzie po kliknięciu wywoła się jakaś funkcja która zwróci w alert tekst1 gdy pole nie zostało wypełnione i tekst2 gdy wypełnione bez przeladowywania całej strony
kamil4u
Kod
<input id="pole">
<input type="button" onclick="test();" value="Sprawdzamy!">

<script>
function test(){
if( document.getElementById('pole').value == "" ){
   alert("Nie ma nic")
} else {
   alert("Coś jest");
}
}
</script>
Majcon
ok.dzięki
tylko teraz coś takiego po kliknieciu sprawdz i gdy jest coś w polu żeby wykonało się to
Kod
$data = $_POST['data'];
if(!empty($data)) {
$czas = strtotime($data);
$czas1 = $czas+86400;
$sel = $db->query("SELECT * FROM `ggczat_log` WHERE `kanal` = '{$canal}' AND `last` > '{$czas}' AND `last` < '{$czas1}' ORDER BY `last` ASC");
if($sel->num_rows != 0){
while($row = $sel->fetch_assoc())
{
$czas = date("d.m.Y G:i:s", $row['last']);
$log .= "<br><b>".htmlspecialchars($row['nick'])."</b> {{$czas}} ".htmlspecialchars($row['log']);
}
}else{
$log = "<font color='red'><b>Brak logów</b></font>";
}
}
ale żeby to się wykonało bez przeladowywania całej strony da radę to jakoś ?
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.