Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML]formularz->pętla->zapis do pliku
Forum PHP.pl > Forum > Przedszkole
awariat
mam taki formularz

  1. <form action="index.php" method="post" name="adminForm" id="adminForm">
  2.  
  3. <input name="CURRENT_ACTIV" type="text" class="text_area" id="CURRENT_ACTIV"/>
  4. <input name="INI_AUTHOR" type="text" class="text_area" id="INI_AUTHOR"/>
  5. <input name="INI_MAIL" type="text" class="text_area" id="INI_MAIL"/>
  6. <input name="INI_WEB" type="text" class="text_area" id="INI_WEB"/>
  7. <textarea name="INI_DESCRIPTION" cols="40" rows="3" class="text_area"</textarea>
  8.  
  9. </form>


i kod php

  1. <?php
  2. function save_as()
  3. {
  4. $CURRENT_ACTIV = $_POST["CURRENT_ACTIV"];
  5. $INI_AUTHOR = $_POST["INI_AUTHOR"];
  6. $INI_MAIL = $_POST["INI_MAIL"];
  7. $INI_WEB = $_POST["INI_WEB"];
  8. $INI_DESCRIPTION = $_POST["INI_DESCRIPTION"];
  9.  
  10.  
  11. $tekst =
  12. 'CURRENT_ACTIV='.$CURRENT_ACTIV.
  13. INI_AUTHOR='.$INI_AUTHOR.'
  14. INI_MAIL='.$INI_MAIL.'
  15. INI_WEB='.$INI_WEB.'
  16. INI_DESCRIPTION='.$INI_DESCRIPTION.'';
  17.  
  18.  
  19.  
  20. $nazwa_pliku = '../templates/awariat_100faces/param/'.$CURRENT_ACTIV.'.ini';
  21. if (!$wskaznik_pliku = fopen($nazwa_pliku, 'w')) {
  22.  $msg = JText::_( 'Nie moge otworzyc pliku ('.$nazwa_pliku.')' );
  23.  exit;}
  24.  if (fwrite($wskaznik_pliku, $tekst) === FALSE) {
  25.  $msg = JText::_('Nie moge zapisac do pliku ('.$nazwa_pliku.')');
  26.  exit;
  27.  }
  28. $msg = JText::_( 'zapisano do pliku ('.$nazwa_pliku.')');
  29. fclose($wskaznik_pliku); 
  30. $this->setRedirect( 'index.php?option=com_allfaces&controller=raz', $msg );
  31. }
  32. }
  33. ?>


Z formularz ładuje do php i tworze z nich zmienne .Potem zapisuje do pliku.
Jak zrobić pętle aby nie trzeba było wpisywać tych wszystkich zmiennych a potem tego samego w zmiennej $tekst.
takich zmiennych w formularzu planuje z 200.
dziękuje
maziak
Jeżeli dobrze zrozumialem, to Twoj problem powinna rozwiazac petla foreach() .

Zobacz sobie coś takiego, a zrozumiesz działanie :

  1. <?php
  2. $i=1;
  3. foreach ($_POST as $klucz => $wartosc) {
  4. echo $i.' Klucz : '.$klucz.' | Warotsc : '.$wartosc.'<br>';
  5. $i++;
  6. }
  7. ?>

Pisane z glowy jak sa bledy to przepraszam.
awariat
zrobiłem tak jak radziłeś
czyli
  1. <?php
  2. $i=1;
  3. foreach ($_POST as $klucz => $wartosc) {
  4. echo ''.$klucz.'='.$wartosc.'<br>';
  5. $i++;
  6. }
  7. ?>


wynik tego jest taki jak chcę (hurrrrra) czyli

CURRENT_ACTIV=r
INI_AUTHOR=ffds
INI_MAIL=f
INI_WEB=
INI_DESCRIPTION=

itd.

propsze podpowiedz jak ten wynik teraz wcisnąc w zmienną $tekst

probowałem roznych opcji np

  1. <?php
  2. $i=1;
  3. foreach ($_POST as $klucz => $wartosc) {
  4. $tekst = echo ''.$klucz.'='.$wartosc.'<br>';
  5. $i++;
  6. }
  7. ?>


i wiele innych ale mi błędy wyskakują
nospor
echo sluzy do wyswietlania na ekran a nie do przypisywania do zmiennej. Pisz troche z zastanawianiem sie co piszesz.
= zapisuje do zmiennej . jesli cos w niej bylo to nadpisuje
.= dopisuje do zmiennej
Ale to wszystko jest w manualu http://pl.php.net/manual/pl/language.operators.string.php

  1. <?php
  2. $i=1;
  3. $tekst = '';
  4. foreach ($_POST as $klucz => $wartosc) {
  5. $tekst .= $klucz.'='.$wartosc.'<br>';
  6. $i++;
  7. }
  8. echo $tekst;
  9. ?>
maziak
Dodam tylko ze to "i++;" jest w tym moim kodzie tylko do wyswietlania liczby porządkowej, wiec jeśli jej nie wyswietlasz, albo nie liczysz ilosci to mozesz to smialo wywalic ;D Bo widze, ze LP juz nie wyswietlana, a i++ nadal trzymasz w kodzie.
awariat
dzięki bardzo .Działa wspaniale tak jak chce.
ucze sie dopiero 3 tygodnie tego php. wczesniej przerabiałem kody tylko ale zachciało mi sie pisac komponent do joomla i okazało sie ze za mało jescze wiem to i sie pytam

jeszcze jedno
mam problem ze sparsowaniem zapisanego w ten sposob pliku
potrzebuje aby było przejscie do nastepnej lini w zapisanym pliku a br i n nie działa lub coś zle pisze.
parsuje za pomocą
$tmp = parse_ini_file('../templates/awariat_100faces/params.ini');
nospor
br to nowa linia w html. nowa linia w linux to \n, nowa linia w windows to \r\n
  1. <?php
  2. $tekst .= $klucz.'='.$wartosc."\n";
  3. ?>

lub
  1. <?php
  2. $tekst .= $klucz.'='.$wartosc."r\n";
  3. ?>
awariat
dzięki bałdzo
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.