Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie pol textowych przez for-a
Forum PHP.pl > Forum > PHP
zadzior
Witam, mam pewien problem. Mianowicie, chodzi o to zeby uzytkownik mial mozliwosc wpisania w jednym polu, ile ma sie pojawic pol textowych formularza ( <input type='text' ...). Jednak musze kazde pole jakos nazwac:

Kod
//Tworzymy formularz z polem zawierajacym ile ma byc nowo utworzonych pol:

<form action="index.php" method=post> <table border=0> <tr bgcolor=#cccccc>
<tr>
<td>Ile akrodów?</td>
<td align="left"><input type="text" name="ilosc_akordow" size="3" maxlength="3"></td> </tr> <tr>

<td colspan="2" align="center"><input type="submit" value="Wybierz"></td> </tr> </table> </form>

//Tworzymy pola

<?
$i=4;
$i=$_POST['ilosc_akordow'];
//Pobiera ilosc akordow
print 'Ilosc akordów: ';
print $i;

//Tworzenie forumularza z polami do akordow
print '<form action="index.php" method=post> <table border=0> <tr bgcolor=#cccccc>';
print '<tr>';
for ($j=0; $i<$j; $j++) {
$nazwa=$_POST['akord_'.$j];
print  '<td align="left"><input type="text" name='.$nazwa.' size="3" maxlength="3"></td>';}

Same pola sie tworza, tyle ze potem jak sie odwoluje do nich wg schematu akord_[i] to jest lipa, nic nie pokazuje, jak mozna to sprytnie wykombinowac? pozdrawiam
potreb
Zrób print_R($_POST)l i zobacz jakie dane są przesyłane.
kfc4
  1. $i=4;
  2. $i=$_POST['ilosc_akordow'];

WTF?

  1. $nazwa=$_POST['akord_'.$j];

Chyba
  1. $nazwa = 'kord_'.$j;


Poza tym można tak
  1. print '<td align="left"><input type="text" name=akord['.$j.'] size="3" maxlength="3"></td>';


I wtedy w wyniku otrzymujesz ładną tablicę.
thek
Można i tak, ale masz dostępne skrypty JS, które dodają do/usuwają z formularza pola text dynamicznie. Bez konieczności przeładowywania strony czy wpisywania ile chcesz ich mieć.
zadzior
Cytat(thek @ 22.10.2009, 19:59:39 ) *
Można i tak, ale masz dostępne skrypty JS, które dodają do/usuwają z formularza pola text dynamicznie. Bez konieczności przeładowywania strony czy wpisywania ile chcesz ich mieć.



dzieki, ale wole php, z ktorym mialem juz jakiekolwiek doswiadczenie smile.gif

kfc4 rzeczywiscie dziala, pomoglo. Choc tylko czesciowo.

Mam nastepny problem, niebardzo wiem. Obecnie kod wyglada nastepujaco:

Kod
<html>

<body>
<form action="index.php" method=post> <table border=0> <tr bgcolor=#cccccc>
<tr>
<td>Ile akrodów?</td>
<td align="left"><input type="text" name="ilosc_akordow" size="3" maxlength="3"></td> </tr> <tr>

<td colspan="2" align="center"><input type="submit" value="Wybierz"></td> </tr> </table> </form>


<?

$i=$_POST['ilosc_akordow'];
//Pobiera ilosc akordow
print 'Ilosc akordów: ';
print $i;

//Tworzenie forumularza z polami do akordow
print '<form action="index.php" method=post> <table border=0> <tr bgcolor=#cccccc>';
print '<tr>';
//for ($j=1; $j<=$i; $j++)
//print '<td align="left"><input type="text" name="akord['.$j.']" size="3" maxlength="3"></td>';
print  '<td align="left"><input type="text" name="akord_0" size="3" maxlength=/"3/"></td>';
print  '<td align="left"><input type="text" name="akord_1" size="3" maxlength=/"3/"></td>';
print  '<td align="left"><input type="text" name="akord_2" size="3" maxlength=/"3/"></td>';
print  '<td align="left"><input type="text" name="akord_3" size="3" maxlength=/"3/"></td>';
print  '<td><input type="submit" value="Sprawdz"></td>';
print  '</tr>';
print  '</table></form>';
// --KONIEC formularza

//print_r($_POST);

$dzwieki[c]=array('c','d','e','f','g','a','h');
$dzwieki[cis]=array('cis','dis','f','fis','gis','b','c');
$dzwieki[d]=array('d','e','fis','g','a','h','cis');
$dzwieki[e]=array('e','fis','gis','a','h','cis','dis');

        
print_r($znalezione);

$znalezione=array();

//  z tym forem nie wiem co zrobic questionmark.gif?

foreach($dzwieki as $key=>$value){
    for ($k=1; $k<=$j; $k++) {
        $zmienna=$_POST['akord_']['$k'];
        print '-'.$zmienna;
        if (array_search($zmienna,$dzwieki[$key])) $znalezione[$key]++;
        }
    }
print_r($znalezione);


?>
<body>
</html>




Kwestia zapisu danych do tablicy $akord[] jest w porzadku. Tylko mam problem z odczytaniem danych i sprawdzeniu, czy litera podana przez uzytkownika, znajduje sie w tablicy $dzwieki. Ow skrypt ma wyliczac ile razy podane litery znajduja sie w kazdej z tablic.
Np podano litery: a, c, g.
Wyswietlac ma: [c] => 3 [cis] => 2 [d] => 1. Albo w podobnej formie, jednak chodzi o poprawnosc wyszukania i przeliczenia.
Niebardzo wiem jak w forze uwzglednic informacje, ile jest pol zw z akord['.$j.'].
Obecnie to dziala, ale z zgory wybrana liczba liter i nazwanych pol: akord_1, akord_2, akord_3 itd. a jak to wszystko zrobic dynamicznie? z gory dzieki pozdrawiam
phpion
Zamiast name="akord_0" daj w każdym przypadku name="akord[0]", a następnie po wysłaniu formularza zobacz co masz w $_POST['akord']:
  1. print_r($_POST['akord']);

Dalej chyba sobie poradzisz smile.gif
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.