kancik
9.06.2020, 13:56:22
Hey,
mam dwa pliki .php:
Pierwszy:
<?php
function displayForm($label=array(),$form,$submit,$data=array(),$enable=array(),$mess)
{
echo($mess);
echo "<form action='$form' method='post'>
$label[0] <input type='text' name='pole[]'> <br/>
$label[1] <input type='text' name='pole[]'> <br/>
$label[2] <input type='text' name='pole[]'> <br/>
$label[3] <input type='text' name='pole[]'> <br/>
<input type='submit' value='$submit'><br/>
</form>";
}
$label=array('numer','imie','nazwisko','grupa');
$data=array('100','Anna','Kowalska','K0I');
$enable=array(0,1,2,2);
displayForm($label,'zad5_wynik.php','Prześlij',$data,$enable,"Wprowadź dane do formularza");
?>
i drugi:
<?php
include "zad5_form.php";
echo "Print Array <br />";
print_r($label);
echo "<br />";
/*
$a=$_POST['$label[]'];
$b=$_POST['$label[]'];
$c=$_POST['$label[]'];
$d=$_POST['$label[]'];
echo $a; echo "<br />";
echo $b; echo "<br />";
echo $c; echo "<br />";
echo $d; echo "<br />";
*/
?>
Nie wiem jak napisać, by wprowadzone dane do formularza pierwszego pliku, pojawiły się w drugim. Próbowałem wielu kombinacji. Proszę o pomoc.
nospor
9.06.2020, 14:28:12
form action='$form' ma wskazywac na drugi plik
a w drugim pliki
print_r($_POST);
a nie zadne jakies $label
kancik
9.06.2020, 17:03:34
Super! Wielkie dzięki! Teraz jest tak, jak być miało, z jednym mankamentem: w funkcji, $data ma za zadanie wskazać jakie wartości będą się wyświetlały domyślnie w polach formularza, ale z jakiegoś powodu tak się nie dzieje. Pomożesz znaleźć rozwiązanie?
gino
10.06.2020, 06:24:22
atrybuty elementu input i zobacz atrybut placeholder
gino
kancik
10.06.2020, 07:59:53
Udało mi się już z tym sobie poradzić, ale mam do Was jeszcze jedną prośbę, już ostatnią. Skrpyt działa, robi dokładnie co chciałem, ale chciałbym jeszcze nauczyć się, jak takie dane zapisane formularzem w PHP do tablicy przesyłać do pliku tekstowego"
<?php
function displayForm($label=array(),$form,$submit,$data=array(),$enable=array(),$mess)
{
echo($mess);
echo "<form action='$form' method='post'>
$label[0] <input type='text' name='pole[]'> <br/>
$label[1] <input type='text' name='pole[]'> <br/>
$label[2] <input type='text' name='pole[]'> <br/>
$label[3] <input type='text' name='pole[]'> <br/>
<input type='submit' value='$submit'><br/>
</form>";
}
$label=array('numer','imie','nazwisko','grupa');
$data=array('100','Anna','Kowalska','K0I');
$enable=array(0,1,2,2);
displayForm($label,'zad5_wynik.php','Prześlij',$data,$enable,"Wprowadź dane do formularza");
?>
wiem jak otworzyć plik tekstowy, ale jedyne co mi wyszło do tej pory to zapis przy pomocy 'serialize'. Ale jest brzydki i mało czytelny. Jak byście to napisali? aby wyglądało to np (w jednej linii w pliku aaaa.txt.):
100, Anna, Kowalska, K0I
nospor
10.06.2020, 09:57:25
No najpierw nazwij pola porzadnie,czyli nie
$label[0] <input type='text' name='pole[]'> <br/>
$label[1] <input type='text' name='pole[]'> <br/>
$label[2] <input type='text' name='pole[]'> <br/>
$label[3] <input type='text' name='pole[]'> <br/>
a:
<input type='text' name='numer'> <br/>
<input type='text' name='imie'> <br/>
<input type='text' name='nazwisko'> <br/>
<input type='text' name='grupa'> <br/>
A potem dobieraj sie bezposrednio do tych pol
$_POST['numer']
$_POST['imie']
itd
gino
10.06.2020, 11:25:18
słuchaj się zawsze nospor-a

możesz też zdefiniować tablice o nawie pole i wrzucić do niej nazwy pól:
$pole = ['imie', 'nazwisko', 'coś tutaj', 'i tutaj', 'itd'];
i odwołaj się tak jak do tablicy $label.
Jeszcze jedna uwaga. Atrybuty pól formularza zwykło się pisać nie w apostrofach tylko w cudzysłowie, czyli nie:
<input type='text' name='imie' placeholder='wpisz swoje imie'>
tylko:
<input type="text" name="imie" placeholder="wpisz swoje imie">
Gdy będziesz sprawdzać kod html-a walidatorem, nie wyrzuci błędu, jednak warto uczyć się poprawnie. Poczytaj o różnicy tych znaków w php.
gino
kancik
10.06.2020, 11:53:15
Dzięki Waszym radom wszystko ładnie działa. Temat do zamknięcia. Pozdrawiam!
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.