W jaki sposób dynamicznie tworzyć div-y?

0

Dopiero zaczynam z PHP i w związku z tym mam pytanie. W jaki sposób dynamicznie tworzyć divy zależnie od ilości rekordów w badzie, a zawartość odpowiednich kolumn ładować do określonych znaczników html?
(taka struktura)

<div id="ogloszenie">
           <h1></h1>
            <p1></p1>
            <br><p2></p2>
</div>

Z góry dzięki za odpowiedzi.

1
  1. Pobrać rekordy z bazy do zmiennej.
  2. Przelecieć np foreach'em przez elementy tej zmiennej
  3. Wewnątrz ww. pętli - wyświetlać odpowiednie indeksy zgodne z kolumnami w bazie jako html.

Tips&Tricks :D

  1. Odseparuj funkcje związane z logika (pobierające dane z bazy, przeliczające, formatujące dane)
  2. Nie mieszaj htmla z php;em za dużo (np do warstwy wizualnej możesz użyć systemu szablonów tj. Twig albo Smarty)
  3. Przejdź jakiś tutorial związany z jakimś frameworkiem - np laravelem https://tutorials.kode-blog.com/laravel-5-tutorial
0

Ja bym to raczej spróbowała zrobić w jQuery, zdaje się że jest konstrukcja funkcji, gdzie możesz sobie zrobić coś takiego

$(document.body).append('<div id="helloDiv"></div>');   
0

Dobra mam taki kod i wszystko pięknie działa:

    $rezultat = $polaczenie->query("SELECT * FROM books");
                    foreach($rezultat as $i)
                    {
                        $wiersz = $rezultat->fetch_assoc();
                        $tresc = $wiersz['tresc'];
                        $title = $wiersz['tytul'];
                        $contact = $wiersz['kontakt'];
                        echo'<div id="ogloszenie"><h1>'.$title.'</h1><p1>'.$tresc.'</p1><br /><p2>'.$contact.'</p2></div>';
                    }                       

ale teraz mam pytanie. W jaki sposób z

<select><option>jakas opcja</option></select>

po jej zaznaczeniu przesłać jej wartość do zmiennej php?

0

Do każdego znacznika option dodać atrybut value i tam wsadzić np id rekordu. No i nie selcet tylko select i ten znacznik musi posiadać atrybut name, aby wiedział po czym zgrupowane są opcje

0
<select name="cos"><option value="id">jakas opcja</option></select>

coś takiego?

0

Jeśli chcesz przesłać słowo "id" to tak, ja bym tam wystawiał wartości faktycznych rekordów z bazy (o ile tak chcesz mieć to zrobione). Poza tym jeśli brakuje Ci podstaw przerób jakieś poradniki/tutoriale online (pewnie nawet na yt coś znajdziesz). Poza tym jaki problem sprawdzić?

0

Jednak coś nie do końca działa. Mam formularz, który dodaje ogłoszenia do bazy i to działa bo dane są w bazie ale ich wyświetlanie na stronie coś szwankuje. Kod:

try
            {
                $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
                if ($polaczenie->connect_errno!=0)
                {
                    throw new Exception(mysqli_connect_errno());
                }
                else
                {
                    if($rezultat = $polaczenie->query("SELECT * FROM electric"))
                    {
                        $ile = $rezultat->num_rows;
                        if($ile>0)
                        {
                            foreach($rezultat as $i)
                            {
                                $wiersz = $rezultat->fetch_assoc();
                                $tresc = $wiersz['tresc'];
                                $title = $wiersz['tytul'];
                                $contact = $wiersz['kontakt'];
                                echo'<div id="ogloszenie"><h1>'.$title.'</h1><p1>'.$tresc.'</p1><br /><p2>'.$contact.'</p2></div>';
                            }
                            $rezultat->free_result();
                        }
                        else
                        {
                            echo 'Brak zawartośći!';
                        }
                    }
                    $polaczenie->close();
                }
            }
            catch(Exception $e)

Po dodaniu przez formularz wyświetla się tylko pusty div bez zawartości mimo iż wszystkie potrzebne dane są w bazie? Nie są pobrane również wszystkie rekordy. Gdzie popełniam błąd?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0