Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Dynamiczne dodawanie rekordów?
Forum PHP.pl > Forum > Przedszkole
Deen
Witajcie!
Wydziergałem taki kod: http://wklej.org/id/340194/
Tworzy on 50 pól input, jednak nie zawsze jest dodawanych 50 rekordów. Jak zrobić żeby na początku był jeden rekord i był przycisk dodaj rekord. Wtedy już by pokazały się dwa pola input. I tak bez ograniczenia a po naciśnięciu przyciska wyślij żeby się do bazy wszystkie te rekordy dodały. Ważne, że jak się kliknie dodaj żeby nie skasowało poprzednio wpisanych danych w pole input... Wydaje mi się, że kiedyś o tym czytałem ale nie mogę tego znaleźć nie wiem jak się nazywa itp. Mam nadzieję, że pomożecie.. btw coś z tablica[] ?
magnus
Inputy muszą być tablicą, czyli każdy musi nazywać się np. "email[]".
Dodawanie nowego musisz zrobić w JavaScripcie - tworząc nowy element strony (input o nazwie "email[]").
W php zwyczajnie lecisz po wszystkich elementach tej tablicy:
  1. foreach ($_POST['email'] as $email) {
  2. //coś robisz z $email
  3. }

albo:
  1. for ($i=0; $i<count[$_POST['email']) {
  2. //coś robisz z $_POST['email'][$i]
  3. }
Deen
Cytat(magnus @ 26.05.2010, 09:15:57 ) *
Inputy muszą być tablicą, czyli każdy musi nazywać się np. "email[]".
Dodawanie nowego musisz zrobić w JavaScripcie - tworząc nowy element strony (input o nazwie "email[]").


Jakiś link? czy coś smile.gif (najlepiej z demo)
athei
link , link , link
Deen
Przejrzałem to co mi wysłałeś wydziergałem coś takiego:
http://wklej.org/id/340240/
Nie zwraca błędów ale nie działa...
To pewnie przez to, ze js pokazuje tresc ale nie ma jej w kodzie strony i php nie ma skąd rekordów brać tak?
Nie ogarniam o co chodzi? jak się z tym uporać?
athei
Wszystko działa.
Zrób sobie
Kod
print_r($_POST);
po
Kod
if ($_GET['action']=="dodaj"){
i zobaczysz jak wygląda tablica $_POST.
Do maili nie odwołujesz się $email = $_POST["$i"]; tylko $email=$_POST['email'][$i]

Edit:
Poza tym dopracuj sobie dodawanie maili do bazy. Po co tyle zapytań. Zrób to jednym, coś jak:
Kod
$zapytanie = "INSERT INTO `email` (`id`, `nazwa`, `data`) VALUES ('', '$email', '$data'), ('$email, '$data'), ('$email, '$data')";

Sprawdź sobie najpierw elementy w tablicy, które niepuste, ile ich jest itd. Później w pętli dodawaj ('$email, '$data'), ('$email, '$data') do zapytania ($zapytanie.=" coś tu") a na koniec wyślij do bazy (query).
zordon
ze swej strony podam tylko jeszcze innego linka po polsku: bardzo fajny tutorial jak zrobić coś takiego krok po kroku w jQuery:
http://ferrante.pl/2007/10/06/jquery-to-latwe-4/
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.