Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Przesyłanie danych parami
Forum PHP.pl > Forum > Przedszkole
koby
Koduję formularz dla klienta i już kopuła mi dymi:)

Mam ankietę, która kończy się pytaniem, gdzie ankieter wypełnia jakiego rodzaju uprawę stosuje. Jest 5 checkboxów, które po zaznaczeniu odblokowują ramkę do wpisania powierzchni danej uprawy. Radziłem sobie do momentu, jak miałem same checkboxy. Teraz formularz musi przesłać dane parami: informację czy checkbox jest zaznaczony i jeśli jest, to dodać w odpowiedzi informację o wartości powierzchni. Przesyłanie danych z checkboxów robiłem funkcją implode, pokazywało mi po przecinku. Teraz muszę to wzbogacić o wartość powierzchni.

Reasumując potrzebuję linijke kodu na przesłanie danych z jednego checkboxu po jego zaznaczeniu + wartość powierzchni wpisanej w pole obok. Całość formularza jest wysyłana mailem, w jego treści chcę mieć napisane jakiego rodzaju uprawę ma i jakiej powierzchni. Screen z formualarza:



Kod formularza:

<table cellpadding="0" cellspacing="0">

<tr>
<td><input class="rodzaj" name="uprawa[]" type="checkbox" value="polowej" onclick="this.form.elements['pow-polowa'].disabled = !this.checked" />Polowe</td>
<td><input class="textpowierzchnia" type="text" name="pow-polowa" disabled="disabled" />Powierzchnia w ha</td>
</tr>

<tr>
<td><input class="rodzaj" name="uprawa[]" type="checkbox" value="pod osłonami" onclick="this.form.elements['pow-oslon'].disabled = !this.checked" />Pod Osłonami</td>
<td><input class="textpowierzchnia" type="text" name="pow-oslon" disabled="disabled" />Powierzchnia w ha</td>
</tr>

<tr>
<td><input class="rodzaj" name="uprawa[]" type="checkbox" value="sadowniczej" onclick="this.form.elements['pow-sad'].disabled = !this.checked" />Sadowniczej</td>
<td><input class="textpowierzchnia" type="text" name="pow-sad" disabled="disabled" />Powierzchnia w ha</td>
</tr>

<tr>
<td><input class="rodzaj" name="uprawa[]" type="checkbox" value="szkółkarskiej" onclick="this.form.elements['pow-szkolka'].disabled = !this.checked" />Szkółkarskiej</td>
<td><input class="textpowierzchnia" type="text" name="pow-szkolka" disabled="disabled" />Powierzchnia w ha</td>
</tr>

<tr>
<td><input class="rodzaj" name="nazwa" type="checkbox" value="wartość" onclick="this.form.elements['uprawa2'].disabled = form.elements['uprawa3'].disabled = !this.checked" />Innej <i>(jakiej?)</i><br>
<input class="textinne" type="text" name="uprawa2" disabled="disabled" />
</td>
<td style="padding-top: 20px;"><input class="textpowierzchnia" type="text" name="uprawa3" disabled="disabled" />Powierzchnia w ha</td>
</tr>
</table>

Kod wykonania formularza:

deklaracja zmiennych:

$imienazwisko = ($_POST['imienazwisko']);
$rokurodzenia = ($_POST['rokurodzenia']);
$zamieszkanie = ($_POST['zamieszkanie']);
$mail = htmlspecialchars(trim($_POST['mail']));
$tel = htmlspecialchars($_POST['tel']);
$uprawa = implode(', ', $_POST['uprawa']);
$uprawa2 = ($_POST['uprawa2']);

mail, w którym ma być wysłane info z formularza:

@$email1 = $_POST['mail'];
@$content1 = "Wypełnienie ankiety ze strony internetowej od:

Imię i nazwisko: $imienazwisko
Rok urodzenia: $rokurodzenia
Miejsce zamieszkania: $zamieszkanie
E-mail: $mail
Telefon kontaktowy: $tel
Powierzchnia przeznaczona do uprawy: $uprawa, $uprawa2";
$header1 = "From: $email \nContent-Type:".
' text/plain;charset="iso-8859-2"'.
"\nContent-Transfer-Encoding: 8bit";
werdan
A co jak bys dał w inputach name tez jako tablica?
koby
Wydaje mi się, że nie będzie to wyglądało poprawnie, wyświetli się najpierw lista zaznaczonych checkboxów, a potem lista powierzchni, a zależy mi na efekcie, gdzie w mailu będzie:

Powierzchnia upraw:
Polowe 24 ha
Szkółkarskie 20 ha
Inne 10 ha

Jak to uzyskać?
koby
Dzisiaj udało mi się ze świeżą głową dojść do rozwiązania. Zrobiłem dla każdego rodzaju uprawy pętlę:

if ((isset($uprawa1)) && (!empty($_POST['uprawa1ha']))) {
$uprawa1ok = ($uprawa1) . ($_POST['uprawa1ha']) . ' ha' . ', ';
}
else if ((isset($uprawa1)) && (empty($_POST['uprawa1ha']))) {
$blad_txt.='<h5>Nie podano powierzchni przeznaczonej do <strong>UPRAWY POLOWEJ</strong></h5>';
$blad=true;
}

I śmiga!
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.