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

Wyskakujące okno po kliknięcu w link

Object Storage Arubacloud
+1 głos
442 wizyt
pytanie zadane 27 czerwca 2020 w JavaScript przez KumberTwo Dyskutant (8,270 p.)
Hej, nie znam się na java scriptcie, stąd to pytanie. Jak zrobić wyskakujące okno po kliknięciu na komórkę tabeli? Wszystko co się dało pisałem w php bo jest bardzo podobne do c++, którego całkiem nieźle ogarniam, więc nie wiem nic o js. Mam też pytanie jak takie coś umieścić w kodzie? Jestem w tagu <?php?> i nie wiem, czy muszę go zamykać, czy wystarczy coś w stylu echo '<script>jakiś kod</script>';
komentarz 27 czerwca 2020 przez VBService Ekspert (253,340 p.)
edycja 27 czerwca 2020 przez VBService

Możesz zrobić: 

echo "<script>    window.onload = function() { const bt_oblicz = document.getElementById('oblicz'); bt_oblicz.addEventListener('click', () => { const pole = document.getElementById('pole'); const wynik = document.getElementById('wynik'); wynik.innerHTML = pole.value; }); };</script>";

ale jak sam widzisz, już tak krótki kod, staje się nieczytelny do edycji.

Można tez tak


echo "<script>"
       . "window.onload = function() {"
       . " const bt_oblicz = document.getElementById('oblicz');"
       . " ...."
       . "});"
       . " };"
       . "</script>";

Według Mnie najczytelniejsze łączenie kodu php z html

<?php

   ............... kod php
$zmienna_php = " hello KumberTwo";

?>
<!--  start kod html w tym przypadku otwarcie znacznika <script> -->
<script>
    window.onload = function() {
        const bt_oblicz = document.getElementById('oblicz');
 
        bt_oblicz.addEventListener('click', () => {
            const pole = document.getElementById('pole');
            const wynik = document.getElementById('wynik');
            wynik.innerHTML = pole.value + "<?=$zmienna_php?>";
        });
    };
</script>
<?php

   .......... dalszy kod php  

?>

 .... html
  </body>
</html>

 

komentarz 27 czerwca 2020 przez KumberTwo Dyskutant (8,270 p.)

Rzeczywiście, nie widać tutaj zbyt dużo, spodziewałem się krótszego kodu smiley Mógłbyś wytłumaczyć co tu się dzieje?

1
komentarz 27 czerwca 2020 przez VBService Ekspert (253,340 p.)

Ale ty chcesz okno otwierać (bo można window.open) czy raczej o modal box'a 

komentarz 27 czerwca 2020 przez VBService Ekspert (253,340 p.)
Wstaw te cześć kodu html i opisz co ma być klikane, i co ma się otwierać po kliknięciu.
komentarz 29 czerwca 2020 przez KumberTwo Dyskutant (8,270 p.)

Próbuję zrobić kalendarz. Mój kod pewnie jest dosyć pokraczny, ale dopiero się uczę, więc za cel postawiłem sobie to, żeby program działał a nie był jak najbardziej wydajny czy przejrzysty.
 

<?php
      $miesiac[1] = "Styczeń";
      $miesiac[2] = "Luty";
      $miesiac[3] = "Marzec";
      $miesiac[4] = "Kwiecień";
      $miesiac[5] = "Maj";
      $miesiac[6] = "Czerwiec";
      $miesiac[7] = "Lipiec";
      $miesiac[8] = "Sierpień";
      $miesiac[9] = "Wrzesień";
      $miesiac[10] = "Październik";
      $miesiac[11] = "Listopad";
      $miesiac[12] = "Grudzień";
      echo '<br><br>';
      $teraz = 1; //ktora data z kolei zaraz zostanie uzyta
      for($l = 1; $l <= 12; $l++)
      {
        require_once "connect.php";
        $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
        $id = $_SESSION['id'];
        if($_SESSION['admin'] == 0)
          $rezultat = $polaczenie->query("SELECT * FROM wydarzenia WHERE id_uzytkownika = '$id' ORDER BY data");
        else
          $rezultat = $polaczenie->query("SELECT * FROM wydarzenia ORDER BY data");
        for($i = 1; $i <= $rezultat->num_rows; $i++)
        { //wczytuje wszystkie raty z bazy
          $data[$i] = $rezultat->fetch_assoc(); //jak chce się odwołać to data[i]['indeks_asoc'];
        }

        echo '<div class="rok">';
        echo '<p class = miesiac>'.$miesiac[$l].'</p>';
        echo '<table class="kalendarz">
          <tr>
            <td>pon</td><td>wt</td><td>śr</td><td>czw</td><td>pt</td><td>sb</td><td>nd</td>
          </tr>';

            echo '<tr>';

            $pierwszy_dzien = date('N', mktime(0, 0, 0, $l, 1, date('Y'))); //pn = 1, nd = 7 (pierwszy dzień miesiąca)
            $dni_mies = date('t', mktime(0, 0, 0, $l, 1, date('Y'))); //ilość dni danego miesiąca
            for($i = 1; $i < $pierwszy_dzien; $i++)
            {
              echo '<td></td>';
            }
            for($i = 1; $i <= $dni_mies; $i++) //dopóki mniejsze od ilości dni w miesiącu
            {

              if(date_format(date_create(date('Y').'-'.$l.'-'.$i), "Y-m-d") == strval($data[$teraz]['data']))
              {
                echo '<td class="wydarzenie">'.$i;
                echo '<br>';
                if($teraz < $rezultat->num_rows)
                  $teraz++;
              }
              else {
                echo '<td>'.$i;
              }
              echo '</td>';
              if(($i + $pierwszy_dzien-1) % 7 == 0)
              {
                echo '</tr><tr>';
              }
            }
            for($i = 0; $i < 7-(($dni_mies-1 + $pierwszy_dzien)%7); $i++) //dodawanie pustych komurek na koncu miecha
            {
              if(7-(($dni_mies-1 + $pierwszy_dzien)%7) == 7) break;
              echo '<td></td>';
            }
           echo '</tr></table><br><br>';
           echo '</div>';
       }
?>

Chcę, aby po kliknięciu w dany dzień miesiąca, wyskakiwało okienko z wszystkimi wydarzeniami, które mamy zapisane na ten dzień, oraz z możliwością dodania nowego wydarzenia, chociaż najpierw wolał bym się skupić na tym pierwszym. Szczerze mówiąc wyobrażałem sobie coś w stylu alert(), ale chyba nie będzie to wyglądać najlepiej. Więc tak naprawdę to sam nie wiem, czego chcę użyć, bo po prostu nie znam wszystkich możliwości.

1 odpowiedź

0 głosów
odpowiedź 13 września 2020 przez WiktroH Mądrala (6,550 p.)

Tak w skrócie:

Stwórz diva/sekcję/etc., która będzie właśnie tym okienkiem, nadaj mu w CSS display:none, a w linku (który go pokazuje) dodaj zdarzenie onclick, w którym będzie:

document.getElementById('id-wyskakujacego-okienka').style.display='fixed';

 

Podobne pytania

0 głosów
1 odpowiedź 490 wizyt
pytanie zadane 7 stycznia 2023 w Systemy operacyjne, programy przez sisOOO Obywatel (1,370 p.)
0 głosów
1 odpowiedź 327 wizyt
pytanie zadane 30 maja 2022 w JavaScript przez Zaqu93 Gaduła (4,850 p.)
0 głosów
2 odpowiedzi 237 wizyt
pytanie zadane 13 kwietnia 2021 w JavaScript przez Trekeren Początkujący (370 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...